123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- <?php
- /**
- * 分段发送数据
- *
- * @param swoole_client $client
- * @param string $data
- * @param int $chunk_size
- */
- function send_chunk(swoole_client $client, $data, $chunk_size = 1024)
- {
- $len = strlen($data);
- $chunk_num = intval($len / $chunk_size) + 1;
- for ($i = 0; $i < $chunk_num; $i++)
- {
- if ($len < ($i + 1) * $chunk_size)
- {
- $sendn = $len - ($i * $chunk_size);
- }
- else
- {
- $sendn = $chunk_size;
- }
- $client->send(substr($data, $i * $chunk_size, $sendn));
- }
- }
- $client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_SYNC); //同步阻塞
- if(!$client->connect('127.0.0.1', 9501, 0.5, 0))
- {
- echo "Over flow. errno=".$client->errCode;
- die("\n");
- }
- //for ($i = 0; $i < 10; $i++)
- //{
- // $client->send("hello world\r\n\r\n");
- // echo "send\n";
- //}
- //exit;
- $data = array(
- 'name' => __FILE__,
- 'content' => str_repeat('A', 8192 * rand(1, 3)), //800K
- );
- $_serialize_data = serialize($data);
- $_send = $_serialize_data."__doit__";
- echo "serialize_data length=".strlen($_serialize_data)."send length=".strlen($_send)."\n";
- //send_chunk($client, $_send);
- //
- if(!$client->send($_send))
- {
- die("send failed.\n");
- }
- //$client->send("\r\n".substr($_serialize_data, 0, 8000));
- echo $client->recv();
- exit;
- $client->send(substr($_serialize_data, 8000));
- //usleep(500000);
- if (!$client->send("\r\n\r\n"))
- {
- die("send failed.\n");
- }
- echo $client->recv();
- //sleep(1);
|