quote:
"Note:
socket_read() returns a zero length string ("") when there is no more data to read."
This is not true!
In a while loop
(example case few bytes to receive - just enough for 1 call, but you use a loop to be sure you received all data)
if you use
<? socket_set_block($socket); ?>
you will get:
1st call in loop: data
2nd call in loop: a block forever, if there isnt data anymore or w/e happen to the "other side"
So ofc you want to use
<? socket_set_nonblock($socket); ?>
and you will get:
1st call in loop: data
2nd call in loop: socket_read() returns FALSE (bool) and socket_last_error() gives you a SOCKET_EWOULDBLOCK (http://de1.php.net/manual/de/sockets.constants.php)
There is not a single time i got a empty string back from socket_read.
And im "working" on this problem(bug?) since a week or so.
You better use socket_recv() instead.
(good luck)