gmysu Opublikowano 1 Listopada 2010 Udostępnij Opublikowano 1 Listopada 2010 Mam serwer i klienta, napisane zgodnie z biblią, koranem i tutorialami tutaj + oficjalną stroną wiki. I problem jest taki - serwer reaguje na połączenie klienta tylko po "odświeżeniu" klienta w trybie debugowania, do tego nie bardzo daje radę z odczytywaniem zmieniającej się pozycji obiektu (w step). why? doklejam mój kod. Wersja GM - 8.0, windows 7 ultimate. Testuję obie aplikacje na localhoście. W create serwera: GML dllinit(0, true, false); status = 0; listen = tcplisten(14804, 50, 1); if(listen <= 0) //jeśli nie udaje się połączyć { show_message("Failed to listen on port 14804"); game_end(); //zakończ grę } w step serwera GML client = tcpaccept(listen, 1); if(client <= 0) exit; global.otherplayer = client; var size; while(true) { size = receivemessage(global.otherplayer); if(size < 0) break; if(size == 0) { show_message("The other player left the game"); game_end(); } messageid = readbyte(); switch(messageid) { case 0: x = readshort(); y = readshort(); status = readshort(); break; } } mam na serwerze jeszcze jeden obiekt którym odczytuje sobie wartości zmiennych i wyświetlam jako tekst, ale to nie ma znaczenia, na mur beton działa. teraz klient: w create GML dllinit(0, true, false); status = 1; server = tcpconnect("127.0.0.1", 14804, 2); if(server <= 0) { show_message( "Unable to connect to server" ) game_end(); } global.otherplayer = server; step: GML if(keyboard_check(vk_left)) { x = x + 4; } if(keyboard_check(vk_right)) { x = x - 4; } clearbuffer(); writebyte(0); writeshort(x); writeshort(y); writeshort(status); sendmessage(global.otherplayer); Dlaczego cała sytuacja jest dziwna? Klikam sobie refresh czy też restart w debug mode (klient), a w oknie serwera zapala się zielona lampka (zmienna status została przesłana z powodzeniem). Help me pl0x! Radzę lepiej zapoznać się z regulaminem.. Nazwa tematu powinna nawiązywać do treści opisywanego problemu, "zakaz nazywania tematów zbyt ogólnikowo (np. "pomoc", "poszukuję", "mam problem", "komputer" itd.),". Z powodu, że jesteś jeszcze młody na forum potraktuje Cię ulgowy - warna nie będzie :P Pamiętaj o tym! Marek.S Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Crackkk-GM Opublikowano 1 Listopada 2010 Udostępnij Opublikowano 1 Listopada 2010 GML global.otherplayer.x = readshort( ); global.otherplayer.y = readshort( ); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gmysu Opublikowano 1 Listopada 2010 Autor Udostępnij Opublikowano 1 Listopada 2010 Fail! Nawet najmniejszej zmiany. Imho nie wnosi chyba za wiele do problemu ten dwuwers. Chyba że jestem w błędzie, i ma jakiś wyższy sens:}. Więcej! Nie mogę przez to spać! :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 1 Listopada 2010 Administratorzy Udostępnij Opublikowano 1 Listopada 2010 A konkretnie co się nie dzieje? Bo tego nie napisałeś. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gmysu Opublikowano 1 Listopada 2010 Autor Udostępnij Opublikowano 1 Listopada 2010 Napisałem! W pierwszych 3 linijkach:}. Po prostu nie ma dialogu serwer - klient. Zapora wyłączona :o. A połączenie jest. Edit: A teraz klient wykrywa serwer. Tyle że serwer nie widzi klienta (zmienna client = 0 w debug mode). Edit: Pomogłem sobie sam. Przepisałem całość i działa od kopnięcia. Pozdrawiam! 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ę