分析listen狀態

2021-09-19 18:45:30 字數 423 閱讀 5880

listen一般只有伺服器會處於這種狀態

在底層,listen會有乙個佇列,佇列中儲存著已經3次握手完畢的tcp但是上層應用程式還沒處理這些socket。此時,客戶端認為已經和伺服器建立了連線,就有可能給伺服器傳送資訊,此時伺服器收到的資訊會先暫時存放在快取中,等待應用程式過來處理。

如果伺服器方的應用程式處理得十分緩慢,此時listen的佇列很有可能會滿,如果隊滿,客戶端傳送的新連線既不返回錯誤,也不確認,只是讓他超時。此時客戶端會認為連線不上

網路函式listen原始碼分析

static int sock listen int fd,int backlog if sock ops sock ops listen sock ops listen sock,backlog 設定socket的監聽屬性,accept函式時用到 sock flags so acceptcon r...

TKeed原始碼分析之新增listen監聽事件

前面初始化監聽套接字listen fd後,現在把它加入到epoll核心事件表當中。初始化套接字開始監聽 int listen fd socket bind listen conf.port 設定為socket非阻塞 int rc make socket non blocking listen fd ...

listen函式詳解

套接字與 地方 繫結好了後,對於服務端而言 這裡是tcp情況 自然就應該乖乖地去聆聽,聆聽客戶端的需求,否則怎麼會叫服務客戶呢?如何去聆聽呢?很簡單,這個單詞你早就學過了,那就是listen,我們來看看listen函式的原型 int pascal far listen socket s,int ba...