diff options
Diffstat (limited to 'ext/standard/tests/network/shutdown.phpt')
-rw-r--r-- | ext/standard/tests/network/shutdown.phpt | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/ext/standard/tests/network/shutdown.phpt b/ext/standard/tests/network/shutdown.phpt new file mode 100644 index 0000000..f9ab664 --- /dev/null +++ b/ext/standard/tests/network/shutdown.phpt @@ -0,0 +1,65 @@ +--TEST-- +stream_socket_shutdown() test on IPv4 TCP Loopback +--SKIPIF-- +<?php + function_exists('stream_socket_shutdown') or die('skip stream_socket_shutdown() is not supported.'); +?> +--FILE-- +<?php + /* Setup socket server */ + $server = stream_socket_server('tcp://127.0.0.1:31337'); + if (!$server) { + die('Unable to create AF_INET socket [server]'); + } + + /* Connect and send request 1 */ + $client1 = stream_socket_client('tcp://127.0.0.1:31337'); + if (!$client1) { + die('Unable to create AF_INET socket [client]'); + } + @fwrite($client1, "Client 1\n"); + stream_socket_shutdown($client1, STREAM_SHUT_WR); + @fwrite($client1, "Error 1\n"); + + /* Connect and send request 2 */ + $client2 = stream_socket_client('tcp://127.0.0.1:31337'); + if (!$client2) { + die('Unable to create AF_INET socket [client]'); + } + @fwrite($client2, "Client 2\n"); + stream_socket_shutdown($client2, STREAM_SHUT_WR); + @fwrite($client2, "Error 2\n"); + + /* Accept connection 1 */ + $socket = stream_socket_accept($server); + if (!$socket) { + die('Unable to accept connection'); + } + @fwrite($socket, fgets($socket)); + @fwrite($socket, fgets($socket)); + fclose($socket); + + /* Read Response 1 */ + echo fgets($client1); + echo fgets($client1); + + /* Accept connection 2 */ + $socket = stream_socket_accept($server); + if (!$socket) { + die('Unable to accept connection'); + } + @fwrite($socket, fgets($socket)); + @fwrite($socket, fgets($socket)); + fclose($socket); + + /* Read Response 2 */ + echo fgets($client2); + echo fgets($client2); + + fclose($client1); + fclose($client2); + fclose($server); +?> +--EXPECT-- +Client 1 +Client 2 |