client.php 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. $client = new swoole_client(SWOOLE_SOCK_TCP);
  3. $client->set(array(
  4. 'open_length_check' => true,
  5. 'package_length_type' => 'N',
  6. 'package_length_offset' => 0, //第N个字节是包长度的值
  7. 'package_body_offset' => 4, //第几个字节开始计算长度
  8. 'package_max_length' => 2000000, //协议最大长度
  9. ));
  10. if (!$client->connect('127.0.0.1', 9501))
  11. {
  12. exit("connect failed\n");
  13. }
  14. for ($i = 0; $i < 10; $i++)
  15. {
  16. $data = array(
  17. 'str1' => str_repeat('A', rand(10000, 20000)),
  18. 'str2' => str_repeat('B', rand(5000, 10000)),
  19. 'str3' => str_repeat('C', rand(1000, 9000)),
  20. );
  21. $data['int1'] = rand(100000, 999999);
  22. $sendStr = serialize($data);
  23. $sendData = pack('N', strlen($sendStr)) . $sendStr;
  24. $client->send($sendData);
  25. echo "send length=" . strlen($sendData) . ", SerId={$data['int1']}\n";
  26. for ($j = 0; $j < 3; $j++)
  27. {
  28. $resp = $client->recv();
  29. $data2 = unserialize(substr($resp, 4));
  30. echo "#$j\trecv length=" . strlen($resp) . ", SerId={$data2['int1']}\n";
  31. }
  32. }
  33. sleep(2);