2013-08-06 27 views

回答

14
#include <sys/socket.h> 

int listen (int socket, int backlog); 

積壓參數提供一個提示,其實施應使用限制套接字的偵聽隊列未完成的連接數的實現。實現可能對積壓施加限制,並默默地減少指定的值。通常,較大的積壓參數值應導致監聽隊列的長度或長度相等。實現應支持積壓了值SOMAXCONN,在<sys/socket.h>定義。

如果listen()是帶一個積壓參數值小於0,則該函數的行爲就好像它已被調用的0

積壓參數值的0積壓參數可以允許插座接受連接,在這種情況下,監聽隊列的長度可以設置爲實現定義的最小值。

如所見here

+2

對於那些可能需要很容易記住什麼SOMAXCONN意味着閱讀更多關於它,我認爲這是短期的插座優秀MAX連接。我可能會誤解,但它無論如何也幫助我記住! :-) – rhgrant10

+3

或者更可能的是,與其他BSD套接字的#define,插座最大連接或插座的最大連接數 – uchuugaka

+0

爲使用文本格式的報價是報價較爲一致。 – EJP

7

簡單地說,積壓是你想要一個套接字上的排隊連接的最大數目。這隊列有這樣你就可以處理來自客戶端的連接,而其他人在排隊等候,積壓指定你想要這個多久行。如果有更多的客戶端嘗試連接到您的服務器,而不是積壓,則這些連接將被丟棄。

SOMAXCONN定義您允許傳遞給我的系統的最大數量爲listen(),即128

您可以在man page

+0

這些連接將被Windows刪除。其他平臺會忽略它們,這會導致客戶端重試幾次,如果仍然沒有響應,則會超時。 – EJP