socket_getpeername_ipv4loop.phpt 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. --TEST--
  2. ext/sockets - socket_getpeername_ipv4loop - basic test
  3. --CREDITS--
  4. # TestFest 2009 - NorwayUG
  5. # $Id: socket_getpeername_ipv4loop.phpt 494 2009-06-09 20:38:05Z tatjana.andersen@redpill-linpro.com $
  6. --SKIPIF--
  7. <?php
  8. if (!extension_loaded('sockets')) {
  9. die('skip sockets extension not available.');
  10. }
  11. ?>
  12. --FILE--
  13. <?php
  14. /* Bind and connect sockets to localhost */
  15. $localhost = '127.0.0.1';
  16. /* Setup socket server */
  17. $server = socket_create(AF_INET, SOCK_STREAM, getprotobyname('tcp'));
  18. if (!$server) {
  19. die('Unable to create AF_INET socket [server]');
  20. }
  21. $minport = 31337;
  22. $maxport = 31356;
  23. $bound = false;
  24. for($port = $minport; $port <= $maxport; ++$port) {
  25. if (socket_bind($server, $localhost, $port)) {
  26. $bound = true;
  27. break;
  28. }
  29. }
  30. if (!$bound) {
  31. die('Unable to bind to '.$localhost);
  32. }
  33. if (!socket_listen($server, 2)) {
  34. die('Unable to listen on socket');
  35. }
  36. /* Connect to it */
  37. $client = socket_create(AF_INET, SOCK_STREAM, getprotobyname('tcp'));
  38. if (!$client) {
  39. die('Unable to create AF_INET socket [client]');
  40. }
  41. if (!socket_connect($client, $localhost, $port)) {
  42. die('Unable to connect to server socket');
  43. }
  44. /* Accept that connection */
  45. $socket = socket_accept($server);
  46. if (!$socket) {
  47. die('Unable to accept connection');
  48. }
  49. if (!socket_getpeername($client, $address, $peerport)) {
  50. die('Unable to retrieve peer name');
  51. }
  52. var_dump($address, $port === $peerport);
  53. socket_close($client);
  54. socket_close($socket);
  55. socket_close($server);
  56. ?>
  57. --EXPECT--
  58. string(9) "127.0.0.1"
  59. bool(true)