pabluuz Opublikowano 8 Września 2009 Udostępnij Opublikowano 8 Września 2009 Witam ponownie drodzy forumowicze. 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> 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.. No i jak hostuje to na localhoscie, i lacze sie tez z localhosta, to wszystko jest spoko, natomiast gdy dam koledze zahostowac, to sprawa wyglada tak ze w kliencie zmienna server = -1 i nie daje rady sie polaczyc.. sprawdzalem juz firewalle, zdognosc portow.. wszystko jest spoko, dodatkowo probowalem laczyc sie z ip googli przez port 80, tak samo nie moze nawiazac polaczenia. Mozna prosic o jakieś wskazówki? Przed napisaniem czegokolwiek, proszę zapoznać się DOKŁADNIE z treścią mojego posta To nie jest wina port Forwardingu ----- Oto topologia mojej sieci, wraz z próbami hostowania/joinania *|HOST|JOIN|Wynik ----------------------- 1|...1...|...4...| 0 //połączenie z poza sieci nieudane 2|...1...|...2...| 0 //połączenie z sieci lokalnej nieudane 3|...2...|...2...| 1 //połączenie na localhoscie udane 4|...4...|...2...| 0 //połaczenie do komputera z poza sieci nieudane 5|...4...|...4...| 1 //połączenie komputera z poza sieci do siebie samego udane 5|...4...|...1...| 0 //połaczenie z servera(nie używając sieci lokalnej) do komputera z poza sieci nieudane Oto dowód, że nie jest to wina port forwarda.. więc proszę nie zwalać na to winy -.- Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 8 Września 2009 Administratorzy Udostępnij Opublikowano 8 Września 2009 Nie masz zew. IP :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pabluuz Opublikowano 8 Września 2009 Autor Udostępnij Opublikowano 8 Września 2009 jakto nie mam zewnętrznego IP ? jak można nie mieć zewnętrznego IP!? ip lokalne mam 192.168.0.xx, natomiast globalne to 83.24.xx.xx , jak domniemam zewnętrzne = globalne :) tylko teraz mi powiedz jeszcze, czy to połączenie mam jakoś forwardować przez server na 192.168.0.1 ? to kod z klienta, więc nie chciałbym, żeby 2 graczy chcących sobie pograć po multi musiało forwardować port dla klienta, bo z tego co wiem, to server musiał zawsze forwardować porty, nie klient. ale proszę powiedz mi o tym conieco, bo z tego co widzę robisz jakiegoś mmorpg, więc masz o tym wiedzę :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 8 Września 2009 Administratorzy Udostępnij Opublikowano 8 Września 2009 Normalnie, jak masz sieć LAN, to twój komputer nie jest widoczny z zewnątrz, tylko Twoja sieć :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pabluuz Opublikowano 8 Września 2009 Autor Udostępnij Opublikowano 8 Września 2009 rozumiem, więc co mogę z tym zrobić? jeśli klient będzie miał komputer który łączy się z netem przez router lub przez server to nie pogra sobie? w takim razie jak rozwiązali to w innych grach? np w W3 albo w twojej almorze ? napewno istnieje jakieś rozwiązanie :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 8 Września 2009 Administratorzy Udostępnij Opublikowano 8 Września 2009 Serwer musi być bezpośrednio w sieci. Jeżeli jest to Neostrada / UPC podłączone pod router, na routerze wystarczy dać strefę DMZ na Twój komp, lub forwarding portów gry. Jeżeli to sieć osiedlowa - no to już nic nie zrobisz. Klient - nie musi. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pabluuz Opublikowano 8 Września 2009 Autor Udostępnij Opublikowano 8 Września 2009 server jest postawiony chwilowo u kolegi ktory nie ma sieci lokalnej i ma jedynie modemik neostrady! ja jako klient mam router. gdyby to był taki prosty problem, dawno bym już to rozwiązał :) ten kod działa gdy pod stała adres_servera dam 127.0.0.1 i odpale server u siebie, a gdy dam pod zmienna ip kolegi (83.24.xx.xx) i on postawi, to nie da rady sie polaczyc -- Prośba do administracji: Proszę o przeniesienie tematu do pytań dla zaawansowanych. Z góry dziękuje :) 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ę