|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2001-12-18 08:35 UTC] martin at humany dot com
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?
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Nov 05 18:00:01 2025 UTC |
Hm in my last example there should be -- $cnt = 0; do { $row = socket_read($irc, 1027, PHP_BINARY_READ); $cnt .= strlen($row); if (strlen($row) < 1027) break; } echo "$cnt bytes read"; -- of course, not 1028 :)