ID: 16877 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] -Status: Feedback +Status: Open Bug Type: Sockets related Operating System: Windows 2000 Profesional PHP Version: 4.2.0 New Comment:
Note this script was taken DIRECTLY from the PHP Manual (which you guys have yet to update with the new socket fixes). And I used this in Windows with a batch file (only one line on the batch file: @c:\PHP\php-cli.exe -q c:\php\server.php ) Script: error_reporting (E_ALL); /* Allow the script to hang around waiting for connections. */ set_time_limit (0); /* Turn on implicit output flushing so we see what we're getting * as it comes in. */ ob_implicit_flush (); $address = 'xxx.xxx.x.xxx; $port = 10000; if (($sock = socket_create (AF_INET, SOCK_STREAM, 0)) < 0) { echo "socket_create() failed: reason: " . socket_strerror ($sock) . "\n"; } if (($ret = socket_bind ($sock, $address, $port)) < 0) { echo "socket_bind() failed: reason: " . socket_strerror ($ret) . "\n"; } if (($ret = socket_listen ($sock, 5)) < 0) { echo "socket_listen() failed: reason: " . socket_strerror ($ret) . "\n"; } do { if (($msgsock = socket_accept($sock)) < 0) { echo "socket_accept() failed: reason: " . socket_strerror ($msgsock) . "\n"; break; } /* Send instructions. */ $msg = "\nWelcome to the PHP Test Server. \n" . "To quit, type 'quit'. To shut down the server type 'shutdown'.\n"; socket_write($msgsock, $msg, strlen($msg)); do { if (FALSE === ($buf = socket_read ($msgsock, 2048))) { echo "socket_read() failed: reason: " . socket_strerror ($ret) . "\n"; break 2; } if (!$buf = trim ($buf)) { continue; } if ($buf == 'quit') { break; } if ($buf == 'shutdown') { socket_close ($msgsock); break 2; } $talkback = "PHP: You said '$buf'.\n"; socket_write ($msgsock, $talkback, strlen ($talkback)); echo "$buf\n"; } while (true); socket_close ($msgsock); } while (true); socket_close ($sock); Previous Comments: ------------------------------------------------------------------------ [2002-04-27 14:57:44] [EMAIL PROTECTED] Please include a short, self-contained sample script (it works for me with cvs head). ------------------------------------------------------------------------ [2002-04-27 14:43:10] [EMAIL PROTECTED] The socket_read() function does not work properly, say I do this: $text = socket_read($message_socket, 2048); It will only get 1 character even though I said 2048 characters. ------------------------------------------------------------------------ [2002-04-27 14:41:29] [EMAIL PROTECTED] The socket_read() function does not work properly, say I do this: $text = socket_read($message_socket, 2048); It will only get 1 character even though I said 2048 characters. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=16877&edit=1