ipv4loop.phpt 1.1 KB

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