日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > php開源 > 綜合技術(shù) > listen(int fd, int backlog)中的backlog含義

listen(int fd, int backlog)中的backlog含義

來源:程序員人生   發(fā)布時間:2013-12-26 14:10:38 閱讀次數(shù):5095次

  建站學院(LieHuo.Net)文檔 backlog應該是未完成3次握手連接和已完成3次握手而未被accept的兩對列之和.不知道我說的對不?如果要控制連接數(shù)量,是不是要自己編碼控制...下面的可以。

以下為引用的內(nèi)容:
while(1)
{
     while( connNumber <= 10 )//maxconn = 10;
     {
           accept();
           pthread_creat();
           connNumber++;
     }
}
thread()
{
  close(fd);
  connNumber--;
}

  2. Linux Kernel 2.6,listen(5),永不 accept,到底能建立成功多少個連接?

以下為引用的內(nèi)容:

CODE 1:

 

$ perl -MIO::Socket -e '$s=new IO::Socket::INET( LocalPort => 9999, Listen => 5 ); sleep(1) while 1'

CODE 2:

$ perl -MIO::Socket -le 'foreach(1..100000){ $c=new IO::Socket::INET( PeerAddr => "127.0.0.1:9999" ); redo unless $c; push @c, $c; print }'

CODE 3:

 

$ netstat -nat | grep EST | grep 9999 | wc -l

 3.  關(guān)于listen(int sockfd, int backlog)backlog的意思

listen(int sockfd, int backlog);我在書上看到在unix編程中backlog這個表示:當有多個客戶端程序和服務端相連時,使用backlog這個表示可以接受的排隊長度。但是我在書上看到這個值一般設(shè)為5到10之間

以下為引用的內(nèi)容:

DESCRIPTION
       To  accept  connections,  a  socket  is first created with socket(2), a willingness to accept incoming connections and a queue limit for incoming connections are specified with listen(), and then the connections are accepted with  accept(2).   The  lis-ten() call applies only to sockets of type SOCK_STREAM or SOCK_SEQPACKET.

       The  backlog  parameter  defines  the  maximum  length  the queue of pending connections may grow to.  If a connection request arrives with the queue full the client may receive an error with an indication of ECONNREFUSED or, if the underlying  protocol supports retransmission, the request may be ignored so that retries succeed.

 整個過程是這樣的:
 在server端維護了兩個隊列,一個是完整隊列,在這個隊列中的描述符都是完成了三次握手的,一個是未完整隊列,在這個隊列中的描述符還沒有接收到客戶端最后的那個ACK。
 而我認為在Linux中這個backlog指的就是那個完整隊列的長度(實際上按照UNP的說法,這個backlog一直以來都存在混淆),所以說雖然這個隊列只能擁有不到20個連接的處理能力,但是對于還沒有處理的連接,會存放到未完整隊列中的。當完整隊列中的描述符被accept取走之后就可以移到完整隊列中來了。

 4. windows 2k 里的listen(SOCKET s,int backlog)的第二個參數(shù)不起作用嗎?

《TCP/IP詳解   卷1:協(xié)議》的Page195有詳細解釋。  
  1)backlog   用于在TCP層接收鏈接的緩沖池的最大個數(shù),這個個數(shù)可在應用層中的listen函數(shù)里設(shè)置,當客戶鏈接請求大于這個個數(shù)(緩沖池滿),其它的未進入鏈接緩沖池的客戶端在tcp層上tcp模塊會自動重新鏈接,直到超時(大約57秒后)  
  2)我們的應用層的鏈接完成是要從tcp層的鏈接緩沖池中移出一個(accept函數(shù)實現(xiàn))

 backlog是連接請求隊列的最大長度。  
  1.在WinSock1.1中最大值5。如果backlog小于1,則backlog被置喂1;若backlog大于SOMAXCONN(定義在winsock.h中,值為5),則backlog被置為SOMAXCONN。  
  2.在WinSock2中,沒有制定具體值,它由服務提供者決定  
  3.有時候backlog設(shè)置很小,這時我們接進多少臺機器都沒問題是因為服務器機器處理速度很快隊列來不及填滿就處理完了,而且在同一個時刻到來的連接還是很少的。

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 久久精品福利视频 | 亚洲аv电影天堂网 | 色姑娘天天综合网 | 欧美精品一区二区三区蜜桃视频 | 国产高清av在线 | 欧洲精品码一区二区三区免费看 | 一个人看的www日本高清视频 | 欧美成人r级一区二区三区 欧美午夜精品一区 | 国产精品久久久久久久久免费丝袜 | 在线第一页 | 欧美国产在线观看 | 欧美成人久久 | 成年人免费在线观看 | 99久久综合国产精品二区国产 | 久久久久久国产精品久久 | 韩日电影在线观看 | 久久都是精品 | 91免费国产在线 | 日韩欧美在线不卡 | 99福利| 国产不卡免费视频 | 天堂在线免费视频 | 毛片久久久 | 日韩av网站在线观看 | 色就是色欧美亚洲 | 欧美日韩在线一区二区 | 日韩一级免费观看 | 五月婷婷精品 | 中文字幕在线二区 | 国产精品区免费视频 | 99精品免费久久久久久久久日本 | 日韩精品 | 老女人一级片 | 狠狠色伊人亚洲综合网站色 | 国产成人综合亚洲 | 爱情岛论坛首页永久网址 | 亚洲无吗| 国产免费无遮挡 | 欧美黄色网页 | 91精品国产91久久久久久吃药 | 国产精品无 |