pabluuz Opublikowano 17 Września 2009 Udostępnij Opublikowano 17 Września 2009 Witam ponownie drodzy forumowicze. Pytanie zostało zadane już na forum dla początkujących, aczkolwiek wygląda na to, że nie jest to taki początkujący problem :) Postanowiłem to przenieść do forum dla zaawansowanych, więc edytowałem ostatniego posta i dopisałem requesta o przeniesieniu, jednakże widać, że administracja była zajęta, lub przeoczyła to. W każdym bądź razie, nie ma problemu, rozumiem ich, też są ludźmi przecież, więc sam to przeniosłem :) Po pierwsze chciałbym wam podziękować za ostatnią pomoc przy "with", od tamtego czasu prace idą mi coraz lepiej, lecz prędzej czy później musiałem natknąć się na kolejny problem. Tym razem chodzi o komunikacje za pomocą 39dll, najpierw pokaże wam jak to wygląda u mnie Kod z klienta Event w create GML dllinit('connection.dll', true, false);//inicjalizacja DLLa server=tcpconnect(adres_servera, 80, 0);//inicjalizacja polaczenia TCP ip = tcpip(server);//pobieram ip z servera :) potem mi sie to przyda, zeby sie do priv serverow nikt nie laczyl</span></span></span></span></span></span></span></span> Event po wpisaniu nazwy konta i wcisnieciu enter GML if(server <= 0) { show_message( "Nie mozna sie polaczyc" ); game_restart(); } else { clearbuffer(); writebyte(0); writestring(DATA.name); writestring(DATA.pass); sendmessage(global.server); room_goto_next(); } A teraz kod z servera on Create GML dllinit(0, true, true); listen = tcplisten(7921, 50, true); //nasłuchiwanie if(listen <= 0) //jeśli nie udaje się nasluchiwac { global.z_g_tcpipstatus=0; //show_message("Failed to listen on port 14804"); //pokaż wiadomość //game_end(); //zakończ grę } else { global.z_g_tcpipstatus=1; } on Step GML client = tcpaccept(listen, true); if(client <= 0) exit; z_l_ilegraczy = z_l_ilegraczy + 1; tid_gracza=instance_create(5,5,player); tabelagraczy[z_l_ilegraczy,0]=client; //link do jego socketu tabelagraczy[z_l_ilegraczy,1]=tid_gracza; // link do ID instancji gracza tid_gracza.client=client; tid_gracza.index=z_l_ilegraczy; tid_gracza.tid_gracza=tid_gracza; // zeby widzial jak go serwer widzi exit; potem server porozumiewa sie co stepa z instancja obiektu player.. I sprawa wygląda tak. adres_servera to constant, definiuje ją z global game settings. Gdy postawie server i na tym samym komputerze do niego joinnam, to w adres_servera wstawiam 127.0.0.1 i jest spoko, da sie dołączyć, lecz gdy postawie server u kolegi i ja chce dolaczyc (ofc w adres_servera wklepuje jego IP) to tcpconnect() zwraca false, sprawa wyglada tak samo gdy próbowałem vice-versa, próbowałem też z innymi kolegami się połączyć, lub żeby koledzy łączyli się do siebie nawzajem i też nie daje rady (także nie jest to problem z siecią). Dodam tez że nie jest to wina port forwardingu, ani niczego co jest związane z moją siecia ( dowód - http://gmc.yoyogames.com/index.php?showtopic=447384) Proszę o pomoc, nie mogę dać sobie sam z tym rady. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 17 Września 2009 Udostępnij Opublikowano 17 Września 2009 edytowałem ostatniego posta i dopisałem requesta o przeniesieniu, jednakże widać, że administracja była zajęta, lub przeoczyła to zawsze mozna tez zaraportowac o to, nie karamy przeciez za kazdy raport ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 18 Września 2009 Administratorzy Udostępnij Opublikowano 18 Września 2009 Powiem to tak: GML listen = tcplisten(7921, 50, true); GML server=tcpconnect(adres_servera, 80, 0); Zagadka - dla czego porty są różne ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pabluuz Opublikowano 18 Września 2009 Autor Udostępnij Opublikowano 18 Września 2009 Powiem to tak: GML listen = tcplisten(7921, 50, true); GML server=tcpconnect(adres_servera, 80, 0); Zagadka - dla czego porty są różne ? Widzisz! Błąd był taki oczywisty! Zaraz sprawdze :) i dam edita --- Edit: Nie nie nie :) to tylko chwilowo bylo jak sprawdzalem czy moge laczyc sie z serverami HTTP :) na tych samych portach (7921) tez nie daje rady sie polaczyc. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 18 Września 2009 Administratorzy Udostępnij Opublikowano 18 Września 2009 A czy inne gry online działają ? Bo może to nie wina kodu, a jednak ustawień. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pablo1517 Opublikowano 18 Września 2009 Udostępnij Opublikowano 18 Września 2009 Kolega prawdopodobnie nie posiada publicznego adresu IP więc nie da się do niego podłączyć. Spróbuj przez hamachi lub z kimś kto publiczny adres posiada. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 18 Września 2009 Administratorzy Udostępnij Opublikowano 18 Września 2009 On twierdzi, że obaj posiadają. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pabluuz Opublikowano 19 Września 2009 Autor Udostępnij Opublikowano 19 Września 2009 Tak, ale sprawę udało się rozwiązać :) Problem był taki, że "adres_servera" był constans, a tcpconnect(adres_servera, 80, 0); wymaga tego argumentu jako stringa, a ja głupi w tabeli const. wpisałem poprostu 192.168.0.1 zamiast "192.168.0.1". Więc informacja dla przyszłych pokoleń: funkcja tcpconnect potrzebuje STRINGA jako pierwszy argument. Dzięki za pomoc wam wszystkim :*. Będę tu zaglądał co jakiś czas, może uda mi się odwdzięczyć. Temat poproszę zamknąć. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się