tcp6loop.phpt 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. --TEST--
  2. Streams Based IPv6 TCP Loopback test
  3. --SKIPIF--
  4. <?php
  5. /* If IPv6 is supported on the platform this will error out with code 111 - Connection refused.
  6. If IPv6 is NOT supported, $errno will be set to something else (indicating parse/getaddrinfo error)
  7. Note: Might be a good idea to export an IPv6 support indicator (such as AF_INET6 exported by ext/sockets) */
  8. @stream_socket_client('tcp://[::1]:0', $errno);
  9. if ($errno != 111) die('skip IPv6 not supported.');
  10. ?>
  11. --FILE--
  12. <?php
  13. for ($i=0; $i<100; $i++) {
  14. $port = rand(10000, 65000);
  15. /* Setup socket server */
  16. $server = @stream_socket_server("tcp://[::1]:$port");
  17. if ($server) {
  18. break;
  19. }
  20. }
  21. if (!$server) {
  22. die('Unable to create AF_INET6 socket [server]');
  23. }
  24. /* Connect to it */
  25. $client = stream_socket_client("tcp://[::1]:$port");
  26. if (!$client) {
  27. die('Unable to create AF_INET6 socket [client]');
  28. }
  29. /* Accept that connection */
  30. $socket = stream_socket_accept($server);
  31. if (!$socket) {
  32. die('Unable to accept connection');
  33. }
  34. fwrite($client, "ABCdef123\n");
  35. $data = fread($socket, 10);
  36. var_dump($data);
  37. fclose($client);
  38. fclose($socket);
  39. fclose($server);
  40. ?>
  41. --EXPECT--
  42. string(10) "ABCdef123
  43. "