Annotation of embedaddon/php/ext/standard/tests/network/shutdown.phpt, revision 1.1.1.2
1.1 misho 1: --TEST--
2: stream_socket_shutdown() test on IPv4 TCP Loopback
3: --SKIPIF--
4: <?php
5: function_exists('stream_socket_shutdown') or die('skip stream_socket_shutdown() is not supported.');
6: ?>
7: --FILE--
8: <?php
1.1.1.2 ! misho 9:
! 10: for ($i=0; $i<100; $i++) {
! 11: $port = rand(10000, 65000);
! 12: /* Setup socket server */
! 13: $server = @stream_socket_server("tcp://127.0.0.1:$port");
! 14: if ($server) {
! 15: break;
! 16: }
! 17: }
! 18:
! 19: if (!$server) {
1.1 misho 20: die('Unable to create AF_INET socket [server]');
21: }
22:
23: /* Connect and send request 1 */
1.1.1.2 ! misho 24: $client1 = stream_socket_client("tcp://127.0.0.1:$port");
1.1 misho 25: if (!$client1) {
26: die('Unable to create AF_INET socket [client]');
27: }
28: @fwrite($client1, "Client 1\n");
29: stream_socket_shutdown($client1, STREAM_SHUT_WR);
30: @fwrite($client1, "Error 1\n");
31:
32: /* Connect and send request 2 */
1.1.1.2 ! misho 33: $client2 = stream_socket_client("tcp://127.0.0.1:$port");
1.1 misho 34: if (!$client2) {
35: die('Unable to create AF_INET socket [client]');
36: }
37: @fwrite($client2, "Client 2\n");
38: stream_socket_shutdown($client2, STREAM_SHUT_WR);
39: @fwrite($client2, "Error 2\n");
40:
41: /* Accept connection 1 */
42: $socket = stream_socket_accept($server);
43: if (!$socket) {
44: die('Unable to accept connection');
45: }
46: @fwrite($socket, fgets($socket));
47: @fwrite($socket, fgets($socket));
48: fclose($socket);
49:
50: /* Read Response 1 */
51: echo fgets($client1);
52: echo fgets($client1);
53:
54: /* Accept connection 2 */
55: $socket = stream_socket_accept($server);
56: if (!$socket) {
57: die('Unable to accept connection');
58: }
59: @fwrite($socket, fgets($socket));
60: @fwrite($socket, fgets($socket));
61: fclose($socket);
62:
63: /* Read Response 2 */
64: echo fgets($client2);
65: echo fgets($client2);
66:
67: fclose($client1);
68: fclose($client2);
69: fclose($server);
70: ?>
71: --EXPECT--
72: Client 1
73: Client 2
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>