You've already forked qlg.tsgz.moe
							
							
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| <?php
 | |
| function send(swoole_client $cli)
 | |
| {
 | |
|     $data = array(
 | |
|         'str1' => str_repeat('A', rand(100000, 900000)),
 | |
|         'str2' => str_repeat('B', rand(100000, 900000)),
 | |
|         'str3' => str_repeat('C', rand(10000, 90000)),
 | |
|     );
 | |
| 
 | |
|     $data['int1'] = rand(100000, 999999);
 | |
| 
 | |
|     $sendStr = serialize($data);
 | |
|     $sendData = pack('N', strlen($sendStr)) . $sendStr;
 | |
|     $cli->send($sendData);
 | |
|     echo "send length=" . strlen($sendData) . ", SerId={$data['int1']}\n";
 | |
| }
 | |
| 
 | |
| $client = new swoole_client(SWOOLE_SOCK_TCP, SWOOLE_SOCK_ASYNC); //异步非阻塞
 | |
| 
 | |
| $client->set(array(
 | |
|     'open_length_check'     => 1,
 | |
|     'package_length_type'   => 'N',
 | |
|     'package_length_offset' => 0,       //第N个字节是包长度的值
 | |
|     'package_body_offset'   => 4,       //第几个字节开始计算长度
 | |
|     'package_max_length'    => 2000000,  //协议最大长度
 | |
| ));
 | |
| 
 | |
| $client->on("connect", function(swoole_client $cli) {
 | |
|     send($cli);
 | |
| });
 | |
| 
 | |
| $client->on("receive", function (swoole_client $cli, $data) {
 | |
|     $resp = unserialize(substr($data, 4));
 | |
|     echo "recv length=" . strlen($data) . ", SerId={$resp['int1']}\n".str_repeat('-', 60)."\n";
 | |
|     $cli->close();
 | |
| //    sleep(1);
 | |
|     //usleep(200000);
 | |
|     //send($cli);
 | |
| });
 | |
| 
 | |
| $client->on("error", function(swoole_client $cli){
 | |
|     echo "error\n";
 | |
| });
 | |
| 
 | |
| $client->on("close", function(swoole_client $cli){
 | |
|     echo "Connection close\n";
 | |
| });
 | |
| 
 | |
| $client->connect('127.0.0.1', 9501);
 | |
| 
 |