ipv6loop.phpt 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. --TEST--
  2. IPv6 Loopback test
  3. --EXTENSIONS--
  4. sockets
  5. --SKIPIF--
  6. <?php
  7. require 'ipv6_skipif.inc';
  8. ?>
  9. --FILE--
  10. <?php
  11. /* Setup socket server */
  12. $server = socket_create(AF_INET6, SOCK_STREAM, SOL_TCP);
  13. if (!$server) {
  14. die('Unable to create AF_INET6 socket [server]');
  15. }
  16. $bound = false;
  17. for($port = 31337; $port < 31357; ++$port) {
  18. if (@socket_bind($server, '::1', $port)) {
  19. $bound = true;
  20. break;
  21. }
  22. }
  23. if (!$bound) {
  24. die("Unable to bind to [::1]:$port");
  25. }
  26. if (!socket_listen($server, 2)) {
  27. die('Unable to listen on socket');
  28. }
  29. /* Connect to it */
  30. $client = socket_create(AF_INET6, SOCK_STREAM, SOL_TCP);
  31. if (!$client) {
  32. die('Unable to create AF_INET6 socket [client]');
  33. }
  34. if (!socket_connect($client, '::1', $port)) {
  35. die('Unable to connect to server socket');
  36. }
  37. /* Accept that connection */
  38. $socket = socket_accept($server);
  39. if (!$socket) {
  40. die('Unable to accept connection');
  41. }
  42. socket_write($client, "ABCdef123\n");
  43. $data = socket_read($socket, 10, PHP_BINARY_READ);
  44. var_dump($data);
  45. socket_close($client);
  46. socket_close($socket);
  47. socket_close($server);
  48. ?>
  49. --EXPECT--
  50. string(10) "ABCdef123
  51. "