Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Serwer gry lokalnej
Forum PHP.pl > Forum > Przedszkole
-fenix-
Potrzebuję w ramach ćwiczenia napisać grę multiplayer która by działała w sieci lokalnej. Myślałem by napisać serwer w php i wyglądałoby to tak, że uruchamiam na karcie w przeglądarce plik .php w którym jest napisany serwer, on sobie działa w pętli. A oprócz tego włączam drugą kartę z klientem (HTML+jQuery+AJAX) i się łącze z serwerem po IP oraz na innym kompie w sieci lokalnej się łącze po IP i można grać. Pytanie moje jak napisać serwer PHP by był on w pętli by cały czas jakoś nasłuchiwał. Musi to być serwer PHP, nie mogę użyć żadnych socketów.
adeptofvoltron
Większość serwerów WWW, przerywa nieskończone pętle php'a
czyli nie zrobisz napisanego w PHPie serwera, który działa w nieskończoność.

jeśli się mylę ktoś mnie poprawi.

Edyta: zrób sobie cwiczenie napisz kod:
  1. while(true){ echo x;}


nie bedziesz miał nieskonczenie wiele x-ów
Gość
A czy to nie jest określone limitem czasu wykonywania skryptu? Chyba jest takie coś w apache. To ma być prosta gra do szkoły i na potrzeby można wyłączyć ten czas albo dać go większym.
!*!
Zapoznaj się z http://www.php.net/manual/en/book.sockets.php a pełno przykładów znajdziesz pod "html5 php chat websockets".
adeptofvoltron
ok to musisz zwrócić uwagę na jedno:
Serwer nie wyśle do przeglądarki strony, jeśli skrypt się nie wykona.
a więc przeglądarka Ci rzuci jakimś błędem-pewnie timeout---skrypt bedzie zasuwał na serwerze i jedyną metodą go wyłączenia będzie zabicie procesu na serwerze(ew. wyłączenie serwera). Zamknięcie przeglądarki Ci nie zatrzyma serwera gry.
-Fenix-
Jasne że HTML nie będzie zwracany. Oprócz serwera będzie klient który się będzie komunikował za pomocą js||jquery+ajax. Serwer by miał samą logikę tylko. Ale nie wiem czy jest sens robić takie coś.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.