[attach]1357[/attach]
?
同時開5個窗口,進行tcp連接,還是都可以連上
?
?
那么這個backlog參數(shù),到底該如何使用......
?
?
backlog可以看作是一個隊列,里面保存了暫時未被任何進程accept的連接,不影響實際的在線數(shù)。
$a = ["socket"=>["backlog"=>1]];
$context = stream_context_create($a);
$main_socket = stream_socket_server("tcp://0.0.0.0:8888", $error_code, $error_msg,STREAM_SERVER_BIND | STREAM_SERVER_LISTEN,$context);
while(1){ sleep(1);}
以上代碼 還是能同時有兩個tcp連接(telnet 127.0.0.1 8888)
ss -tpl 這個8888端口確實是1
我補充下:
1、linux2.6內(nèi)核之后,backlog指的是某段時間內(nèi)完全建立連接【即established】監(jiān)聽隊列的最大socket隊列長度。
2、監(jiān)聽隊列的最大長度并不是backlog,而是 backlog+1 。
不可能的,你再把我列的那兩條概念看一下,你說的5個并不是全連接,你按照walkor說的,不要accept,然后netstat 觀察連接狀態(tài)就能知道是怎么回事了。