Bug #14578 Updated: socket_read() behavior

From: Date: Mon, 28 Jan 2002 15:43:29 +0000
Subject: Bug #14578 Updated: socket_read() behavior
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-78314@lists.php.net to get a copy of this message
ID: 14578 Updated by: sterling Reported By: martin@humany.com Old Status: Open Status: Closed Bug Type: Sockets related Operating System: Windows 2000 PHP Version: 4.1.0 New Comment: This is not a php issue, this is either a winsock or programmer issue. The fact that socket_read() returns correctly, means that socket_read() is correct (cause all we do is map socket_read() to a recv() call). Previous Comments: ------------------------------------------------------------------------ [2001-12-18 08:37:29] martin@humany.com 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 :) ------------------------------------------------------------------------ [2001-12-18 08:35:37] martin@humany.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? ------------------------------------------------------------------------ Edit this bug report at http://bugs.php.net/?id=14578&edit=1

« previous php.dev (#78314) next »