Cześć,
Bawię się streamami w PHP, próbuję zrobić prosty serwer z klientem.
server:
if ($connection = stream_socket_accept($this->socket,1))
{
$str = '';
while (!feof($connection)) $str .= fread($connection, 1024
); // parsujemy request i generujemy odpowiedź
$response = ...
fwrite($connection, $response.PHP_EOL
); }
client:
fwrite($this->socket, $data.PHP_EOL
); $str = '';
while (!feof($this->socket)) {
$str .= fread($this->socket, 1024
); }
Klient wysyła dane za pomocą fwrite, i one dochodzą do serwera. Serwer generuje odpowiedź i wysyła również. Niestety, zupełnie nie wiem dlaczego, klient jej nie dostaje.

Nie otrzymuję też żadnego błędu. W momencie kiedy połączenie jest przerwane, bo np. wcisnę ctrl-c w konsoli gdzie odpaliłem serwer

, klient czyta pustego stringa, ale wcześniej cały czas czeka na dane.