From:             [EMAIL PROTECTED]
Operating system: Windows 2000
PHP version:      4.1.0
PHP Bug Type:     Sockets related
Bug description:  socket_read() behavior

I call socket_read() like this:

$data = socket_read($handle, 80, PHP_BINARY_READ);
and get 80 byte back. i made a loop to continue read until strlen($data) <
80 (just experimenting):
--
$cnt = 0;
do {
$row = socket_read($irc, 80, PHP_BINARY_READ);
$cnt .= strlen($row);
if (strlen($row) < 80) break;
}
echo "$cnt bytes read";
--
This gives me 1027 bytes of data, even though there is more data left to
read, the last read only returns 67 bytes of data.

if i call socket_read() with 2048 as size, i also only get 1027 bytes
back


So i worked around this in my example loop like this:


$cnt = 0;
do {
$row = socket_read($irc, 1028, PHP_BINARY_READ);
$cnt .= strlen($row);
if (strlen($row) < 1028) break;
}
echo "$cnt bytes read";


Wich works, and reads everything for me. But is this really the expected
behaviour?

-- 
Edit bug report at: http://bugs.php.net/?id=14578&edit=1


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to