ID: 27552 Updated by: [EMAIL PROTECTED] Reported By: jeroen dot pulles at redslider dot net -Status: Open +Status: Feedback Bug Type: Sockets related Operating System: win32 PHP Version: 5CVS-2004-03-10 (dev) New Comment:
I can't reproduce this either. Are you sure there isn't some firewall or something in between that might somehow break this..? Previous Comments: ------------------------------------------------------------------------ [2004-03-11 02:53:07] jeroen dot pulles at redslider dot net I am using the latest windows binary snapshot. (It's just that I'm not using the regular cmd.exe for command line work, but cygwin's bash.exe shell; Which is probably irrelevant anyway. For the record: I get the same result when running the reproduce code from cmd.exe.) ------------------------------------------------------------------------ [2004-03-10 12:06:25] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php5-latest.tar.gz For Windows: http://snaps.php.net/win32/php5-win32-latest.zip Please try a real windows binary, not a cygwin emulation and see if the problem persists. ------------------------------------------------------------------------ [2004-03-10 11:39:19] jeroen dot pulles at redslider dot net Description: ------------ When writing data to a socket, the program fails when writing more than 8192 bytes, irrespective of a given buffersize. Specifics: - Windows 2000 - 5.0.0.0 RC1-dev (-200403101130) - Command line interface (using cygwin) - Almost no modules, just php_sockets.dll - Default php.ini(-dist), apart from E_ALL for the error logging Note: The socket shouldn't be blocking, I didn't ask for it, and set_stream_blocking(true) doesn't change it; I'm guessing this is some irrelevant (for me) implementation detail for PHP. Note: Writing to localhost does work. Note: Writing less than 8192 bytes does work (well, didn't check the exact size where failure starts to happen). Note: No problems on my Linux box and PHP 5.*. Reproduce code: --------------- <?php $socket = fsockopen('some-other-host', 80, $errno, $errmessage); $message_body = ''; for ($i = 0; $i < 4000; $i++) $message_body .= 'yadda '; $contentlength = strlen($message_body); $message = "POST / HTTP/1.0\r\n"; $message .= "Host: some-other-host\r\n"; $message .= "Content-Type: text/plain\r\n"; $message .= "Content-Length: $contentlength\r\n"; $message .= "\r\n"; $message .= $message_body; fwrite($socket, $message); fclose($socket); print($errmessage); print("Done\n"); ?> Expected result: ---------------- Expecting to just see "Done" Actual result: -------------- [EMAIL PROTECTED] bin/php fwrite-bug.php Notice: fwrite(): send of 8192 bytes failed with errno=0 A non-blocking socket o peration could not be completed immediately. in C:\home\wwwroot\aria\fwrite-bug.php on line 12 Done ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=27552&edit=1