select.php 722 B

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. $clients = array();
  3. for($i=0; $i< 20; $i++)
  4. {
  5. $client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_SYNC); //同步阻塞
  6. $ret = $client->connect('127.0.0.1', 9501, 0.5, 0);
  7. if(!$ret)
  8. {
  9. echo "Connect Server fail.errCode=".$client->errCode;
  10. }
  11. else
  12. {
  13. $client->send("HELLO WORLD\n");
  14. $clients[$client->sock] = $client;
  15. }
  16. }
  17. while (!empty($clients))
  18. {
  19. $write = $error = array();
  20. $read = array_values($clients);
  21. $n = swoole_client_select($read, $write, $error, 0.6);
  22. if ($n > 0)
  23. {
  24. foreach ($read as $index => $c)
  25. {
  26. echo "Recv #{$c->sock}: " . $c->recv() . "\n";
  27. unset($clients[$c->sock]);
  28. }
  29. }
  30. }