swoole學習04之tcp問題

2021-10-05 05:42:26 字數 1862 閱讀 5618

tcp 在傳送資料的時候,因為存在資料快取的關係,對於資料在傳送的時候短時間內連續的傳送很小的資料時候就有可能一次性一起傳送。還有就是大資料會連續的分多次傳送

$server

->

set(

array

('open_length_check'

=>

true

,'package_max_length'

=>

81920

,'package_length_type'

=>

'n',

'package_length_offset'

=>8,

'package_body_offset'

=>16,

));

server

$server

=new

swoole\server

("127.0.0.1"

,9503);

$server

->

set(

[// 'heartbeat_idle_time' => 20, // 表示乙個連線如果20秒內未向伺服器傳送任何資料,此連線將被強制關閉

//'heartbeat_check_interval' => 8, // 表示每8秒遍歷一次

'open_length_check'

=>

true

,'package_max_length'

=>

81920

,'package_length_type'

=>

'n',

'package_length_offset'

=>0,

'package_body_offset'

=>4,

]);$server

->on(

'connect'

,function

($server

,$fd

)\n";}

);$server

->on(

'receive'

,function

($server

,$fd

,$reactor_id

,$data))

;$server

->on(

'close'

,function

($server

,$fd

)\n";}

);$server

->

start()

;

client

$client

=new

swoole\client

(swoole_sock_tcp);

if(!$client

->

connect

('127.0.0.1'

,9503,-

1))\n");

}// 模擬粘包的問題

$data

="study day day up"

;$len

=pack

("n"

,strlen

($data))

;for($i

=0;$i

<

100;

$i++

)echo

$client

->

recv()

;echo

"kkkk\r\n"

;$client

->

close()

;

學習SWOOLE之TCP客戶端

準備工作 使用vmware軟體安裝centos7 安裝php7 和swoole擴充套件 建立tcp客戶端 client new swoole client swoole sock tcp if client connect 192.168.80.1 9505,1 n client send hell...

swoole之TCP伺服器

建立server物件,監聽 127.0.0.1 9501埠 serv new swoole server 127.0.0.1 9501 serv set worker num 4,worker程序數 一般是cpu的倍數 max request 1000 最大請求數 監聽連線進入事件 fd 客戶端連線...

學習SWOOLE之程序建立

準備工作 使用vmware軟體安裝centos7 安裝php7 和swoole擴充套件 建立程序 建立程序執行的函式 param worker 缺省會傳入這個函式 function doprocess swoole process worker 建立程序 process newswoole proc...