2021-03-17 Select

1? Select 客戶端鏈接數(shù)可以自定義。? #define FD_SETSIZE 2。 必須放在包含winsock頭文件之前。

2? FD_SETSIZE 等于2時,只能接收一個客戶端鏈接。 服務(wù)端socket會占用一個。

3 當 fd_set 結(jié)構(gòu)體達到 FD_SETSIZE 時,F(xiàn)D_SET函數(shù)會失敗。客戶端recv會一直阻塞,但是tcp鏈接是會保持的。

4 FD_ZERO 清空集合。 FD_CLR 刪除集合里的某個套接字。當有新鏈接進來時,需要刪除服務(wù)端套接字,再調(diào)用 accept 接收新的客戶端連接。

5? FD_ZERO,? FD_CLR,? FD_SET,? 線程不安全。

6 FD_ISSET 判斷socket是否在集合中,在的話說明有數(shù)據(jù)來了。如果是服務(wù)端socket,那么就是說明有新鏈接來了。如果是客戶端socket,那么說明客戶端發(fā)送數(shù)據(jù)過來了。

7 select之后。 fdRead 的總數(shù)是有客戶端發(fā)送數(shù)據(jù)的socket總數(shù)。


參考:
1 https://blog.csdn.net/wwxy1995/article/details/88431650
2 https://blog.csdn.net/wjl18270365476/article/details/98474418
3 http://www.cppblog.com/kevinlynx/archive/2014/06/01/207172.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • HTTP網(wǎng)站資源類型 HTTP網(wǎng)站訪問度量 企業(yè)常用網(wǎng)站服務(wù)軟件 nginx網(wǎng)站服務(wù)特性 nginx服務(wù)部署安裝 ...
    謎糊生閱讀 296評論 0 1
  • Select I/O復(fù)用,可以調(diào)用系統(tǒng)調(diào)用select和poll!在這兩個系統(tǒng)調(diào)用中的某一個阻塞,而不是真正的阻塞...
    小葉大孟閱讀 934評論 0 0
  • select IO模型學(xué)習(xí) 問題由來單進程單線程下,最普通的socket是阻塞連接的,即server與一個clie...
    FakeCSer愛去網(wǎng)吧閱讀 1,174評論 0 1
  • 今天晚上,有同學(xué)給我報了一個內(nèi)部網(wǎng)絡(luò)協(xié)議包 stpclient 的 bug,如下: 這個異常已經(jīng)發(fā)生過好幾次了,所...
    t2othick閱讀 8,353評論 0 3
  • 什么是I/O復(fù)用? 所以針對每一種I/O復(fù)用的機制,我們需要回答3個問題: 多路復(fù)用機制會監(jiān)聽套接字上的哪些事件?...
    wayyyy閱讀 316評論 0 0

友情鏈接更多精彩內(nèi)容