length_client.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. $client = new swoole_client(SWOOLE_SOCK_TCP);
  3. $client->set(array(
  4. 'open_length_check' => true,
  5. 'package_max_length' => 8 * 1024 * 1024,
  6. 'package_length_type' => 'N', //see php pack()
  7. 'package_length_offset' => 0,
  8. 'package_body_offset' => 4,
  9. ));
  10. if (!$client->connect('127.0.0.1', 9504)) {
  11. exit("connect failed\n");
  12. }
  13. $func = "send_test" . intval(empty($argv[1]) ? 3 : $argv[1]);
  14. for ($l = 0; $l < 1; $l++) {
  15. $data = '';
  16. for ($i = 0; $i < 10; $i++) {
  17. $len = rand(100000, 200000);
  18. echo "send : " . ($len + 4) . "\n";
  19. $func($client, $len);
  20. }
  21. sleep(1);
  22. }
  23. function send_test3($client, $len)
  24. {
  25. $data = pack('N', $len + 4);
  26. $data .= str_repeat('A', $len) . rand(1000, 9999);
  27. $chunks = str_split($data, 4000);
  28. foreach ($chunks as $ch) {
  29. $client->send($ch);
  30. }
  31. // $data = $client->recv();
  32. // echo "recv : " . strlen($data) . "\n";
  33. }
  34. function send_test2($client, $len)
  35. {
  36. $data = pack('N', $len + 4);
  37. $data .= str_repeat('A', $len) . rand(100000, 999999);
  38. $client->send($data);
  39. $data = $client->recv();
  40. }
  41. function send_test1($client, $len)
  42. {
  43. $client->send(pack('N', $len + 4));
  44. usleep(10);
  45. $client->send(str_repeat('A', $len) . rand(1000, 9999));
  46. $data = $client->recv();
  47. }