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>