TCP伺服器listen函式的包裹函式

2021-07-05 10:32:39 字數 570 閱讀 6250

#include

int listen(int sockfd,int backlog)

//成功返回0,失敗返回-1

當tcp伺服器呼叫listen函式時,它做兩件事:

把伺服器套接字從closed狀態轉換到listen狀態。

backlog引數規定了核心中未完成連線套接字的最大值即套接字排隊的最大連線數。

歷史上總是將backlog設為5,那麼未完成連線套接字的最大值為5*1.5=8。

注意:如果不想讓任何客戶連線到你,那麼請關閉套接字,不要試圖將backlog設為0。

可是如今的http伺服器必須指定乙個較大的backlog才能滿足繁忙的需求。一種方法是使用乙個常值,可是每次增長都需要重新編譯,比較麻煩;另一種方法是設定預設值,然後允許通過命令列或環境變數覆蓋預設值。

下面實現環境變數複寫的方法:

#include

#include

void listen(int fd,int backlog)

linux 伺服器端listen 函式使用分析

功能 監聽來自客戶端的tcp socket的連線請求 listen函式在一般在呼叫bind之後 呼叫accept之前呼叫,它的函式原型是 include int listen int sockfd,int backlog 引數sockfd是被listen函式作用的套接字,引數backlog是偵聽佇列...

TCP的listen和accept函式

int listen int sockfd,int backlog 完成兩件事情 1 將未連線的套介面轉換成被動套介面,指示核心應接收指向此套 接的連線請求。導致套介面從closed狀態到listen狀態 2 規定核心為此套介面排隊的最大連線數。一般來講,此函式應該在呼叫了socket bind之後...

簡單的TCP伺服器

介紹 winsock api 是一套供 microsoft windows 作業系統使用的套接字程式庫,它最初基於 berkeley 套接字,但是其中加入了一些 microsoft 的特殊改動。在這篇文章中,我要試著給你介紹如何使用 winsock 來進行套接字程式設計,並假設你沒有在任何作業系統上...