1--TEST-- 2IPv4 Loopback test 3--SKIPIF-- 4<?php 5 if (!extension_loaded('sockets')) { 6 die('skip sockets extension not available.'); 7 } 8?> 9--FILE-- 10<?php 11 /* Setup socket server */ 12 $server = socket_create(AF_INET, SOCK_STREAM, getprotobyname('tcp')); 13 if (!$server) { 14 die('Unable to create AF_INET socket [server]'); 15 } 16 17 if (!socket_bind($server, '127.0.0.1', 0)) { 18 die("Unable to bind to 127.0.0.1"); 19 } 20 21 if (!socket_listen($server, 2)) { 22 die('Unable to listen on socket'); 23 } 24 25 socket_getsockname($server, $unused, $port); 26 27 /* Connect to it */ 28 $client = socket_create(AF_INET, SOCK_STREAM, getprotobyname('tcp')); 29 if (!$client) { 30 die('Unable to create AF_INET socket [client]'); 31 } 32 if (!socket_connect($client, '127.0.0.1', $port)) { 33 die('Unable to connect to server socket'); 34 } 35 36 /* Accept that connection */ 37 $socket = socket_accept($server); 38 if (!$socket) { 39 die('Unable to accept connection'); 40 } 41 42 socket_write($client, "ABCdef123\n"); 43 44 $data = socket_read($socket, 10, PHP_BINARY_READ); 45 var_dump($data); 46 47 socket_close($client); 48 socket_close($socket); 49 socket_close($server); 50?> 51--EXPECT-- 52string(10) "ABCdef123 53" 54