Mam napisane 2 klasy.
Klasa serwer:
<?php class Serwer{ private $gniazdko; private $adres = '127.0.0.1'; private $port = 80; public $odebrane; public function uruchomSerwer(){ //Utworzenie gniazdka dla polaczenia TCP $this->gniazdko = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_bind($this->gniazdko, $this->adres); socket_listen($this->gniazdko); } public function odebrane(){ socket_accept($this->gniazdko); $this->odebrane = socket_read($this->gniazdko, 2048); } public function wylaczSerwer(){ socket_close($this->gniazdko); } } ?>
Klasa Klient
<?php class Klient{ public $gniazdko; public $odebrane; public function polacz($host){ //Pobranie portu dla www $port = getservbyname('www', 'tcp'); //pobranie adresu serwera $serwer = gethostbyname($host); //Utworzenie gniazdka dla polaczenia TCP $this->gniazdko = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); //Utworzenie połączenia $polaczenie = socket_connect($this->gniazdko, $serwer, $port); } public function rozlacz(){ //Pobranie portu dla www socket_close($this->gniazdko); } public function wyslij($pakiet){ //wysłanie danych } public function odbierz(){ //odbiór danych while($this->odebrane = socket_read($this->gniazdko, 2048)){ }; } } ?>
Problem następuje w momencie kiedy próbuje przesłać zapytanie od klienta do serwera! Nie wyskakują żadne warningi a skrypt serwera jakby sie wieszal w momencie proby odczytu!
Tak samo skrypt klienta w momencie wysylania takze sie zawiesza.
Prosze o pomoc!