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

1. listen(int fd, int backlog)中的backlog不能限制連接數量???

http://bbs.chinaunix.net/viewthread.php?tid=870564

backlog應該是未完成3次握手連接和已完成3次握手而未被accept的兩對列之和.不知道我說的對不?
如果要控制連接數量,是不是要自己編碼控制...下面的可以嗎
while(1)
{
? ???while( connNumber <= 10 )//maxconn = 10;
? ???{
? ?? ?? ???accept();
? ?? ?? ???pthread_creat();
? ?? ?? ???connNumber++;
? ???}
}
thread()
{
??close(fd);
??connNumber--;
}

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

http://bbs.chinaunix.net/viewthread.php?tid=1259656&extra=page%3D1%26amp%3Bfilter%3Ddigest&page=1

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. ?關于listen(int sockfd, int backlog)backlog的意思(誠心求教)

http://linux.chinaunix.net/bbs/viewthread.php?tid=1042212

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

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取走之后就可以移到完整隊列中來了。
你可以看看這個貼子,里面的實驗可以說明:
http://bbs.chinaunix.net/viewthread.php?tid=1259656&extra=page%3D1%26amp%3Bfilter%3Ddigest&page=1
從這里面可以看出,

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

http://topic.csdn.net/t/20021112/10/1168603.html

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

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

轉載于:https://www.cnblogs.com/starspace/archive/2009/01/14/1375477.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/276676.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/276676.shtml
英文地址,請注明出處:http://en.pswp.cn/news/276676.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

本地無法啟動MySQL服務,報的錯誤:1067,進程意外終止---解決

原文鏈接&#xff1a;http://blog.csdn.net/shenhonglei1234/article/details/5928873 在本地計算機無法啟動MYSQL服務錯誤1067進程意外終止 這種情況一般是my.ini文件配置出錯了 首先找到這個文件&#xff1a; 默認安裝路徑 C:/Program Files/MySQL/MySQL Server 5.1/my.ini …

一篇文章助你理解Python3中字符串編碼問題

前幾天給大家介紹了unicode編碼和utf-8編碼的理論知識&#xff0c;以及Python2中字符串編碼問題&#xff0c;沒來得及上車的小伙伴們可以戳這篇文章&#xff1a;淺談unicode編碼和utf-8編碼的關系和一篇文章助你理解Python2中字符串編碼問題。下面在Python3環境中進行代碼演示&…

Express框架開發知識點總結

express --viewpug myapp 以上語句在當前工作目錄中創建名為 myapp 的 Express 應用程序&#xff0c;采用的模板是jade。 以前還在糾結使用hbs模板引擎或者ejs模板&#xff0c;實際上只要將--view后面的pug換成hbs&#xff08;使用的是Handlebars模板引擎&#xff09;&#xff…

《高級軟件架構師講義》學習筆記5

第五章 設計模式與軟件架構設計 一、面向對象軟件架構設計思想 a) 面向對象范式 i. 面向對象范式的核心是“對象”的概念 ii. 所有的東西都聚焦于對象 iii. 圍繞對象-而非函數-組織代碼 b) 對象從不同視角觀察 i. 概念層&#xff1a;…

python 安裝xpath_Python網絡爬蟲(四)- XPath1.XPath2.XPath在python中的應用

目錄&#xff1a; 1.XPath XPath即為XML路徑語言&#xff08;XML Path Language&#xff09;&#xff0c;它是一種用來確定XML文檔中某部分位置的語言。它使用路徑表達式來選取 XML 文檔中的節點或節點集。節點是通過沿著路徑 (path) 或者步 (steps) 來選取的。 XPath語法 2.XP…

團隊升級

2019獨角獸企業重金招聘Python工程師標準>>> 轉載于:https://my.oschina.net/yulongblog/blog/2988702

設計模式簡介

深入理解面向對象 向下&#xff1a;深入理解三大面向對象機制 封裝&#xff0c;隱藏內部實現 繼承&#xff0c;復用現有代碼  多態&#xff0c;改寫對象行為 向上&#xff1a;深刻把握面向對象機制所帶來的抽象意義&#xff0c;理解如何使用這些機制來表達現實世界&#xff0c…

Css3: gradient背景漸變

Css3: gradient背景漸變 原文鏈接&#xff1a;http://kk073000.blog.163.com/blog/static/34826942012123111322691/ css3實現了背景漸變。 <gradient> [ <linear-gradient> | <radial-gradient> | <repeating-linear-gradient> | <repeating-r…

模板方法

重構的關鍵技法&#xff1a; 靜態 -> 動態 早綁定 -> 晚綁定 繼承 -> 組合 編譯時依賴 -> 運行時依賴 緊耦合 -> 松耦合 "組件協作"模式 現代軟件專業分工之后的第一個結果是“框架與應用程序的劃分”&#xff0c;“組件協作”模式通過晚期綁定&#…

聚類 python_python中實現k-means聚類算法詳解

算法優缺點&#xff1a; 優點&#xff1a;容易實現 缺點&#xff1a;可能收斂到局部最小值&#xff0c;在大規模數據集上收斂較慢 使用數據類型&#xff1a;數值型數據 算法思想 k-means算法實際上就是通過計算不同樣本間的距離來判斷他們的相近關系的&#xff0c;相近的就會放…

python筆試常見題

1、冒泡排序&#xff1a; 冒泡排序算是最基本的python算法了。也算python面試遇到問的最多的了。 如果是封裝成函數。代碼如下&#xff1a; 如果初始就一個字典。那么代碼為&#xff1a; 冒泡排序的本質就是兩兩比較。根據結果調換位置。最終達到一個排序的效果。 注&#xff1…

固定資產打開提示:上年度數據未結轉!

問題現象&#xff1a;固定資產打開提示&#xff1a;上年度數據未結轉&#xff01; 問題分析&#xff1a;服務器出問題后&#xff0c;數據庫UFSYSTEM丟失&#xff0c;重新建賬后年度數據覆蓋后出現的&#xff0c;那么問題應該出在UFSYSTEM庫UA_ACCOUNT_SUB表與年度庫Accinformat…

windows MySQL 5+ 服務手動安裝

MySQL 5 服務手動安裝的方法&#xff1a;運行cmd&#xff0c;進入mysql的安裝目錄&#xff1a; C:\Users\aministrator> D: D:\> cd MySQL Server 5.6\bin D:\MySQL Server 5.6\bin>在bin目錄中運行mysqld.exe -install命令&#xff0c;安裝不完成會有提示信息。#1、手…

Kotlin防止按鈕多次點擊

剛開始寫kotlin 這段代碼寫的可能有問題 望指正 object ViewClickDelay {var hash: Int 0var lastClickTime: Long 0var SPACE_TIME: Long 3000 }infix fun View.clickDelay(clickAction: () -> Unit) {this.setOnClickListener {if (this.hashCode() ! hash) {hash thi…

C#網絡編程(同步傳輸字符串) - Part.2

服務端客戶端通信 在與服務端的連接建立以后&#xff0c;我們就可以通過此連接來發送和接收數據。端口與端口之間以流&#xff08;Stream&#xff09;的形式傳輸數據&#xff0c;因為幾乎任何對象都可以保存到流中&#xff0c;所以實際上可以在客戶端與服務端之間傳輸任何類型的…

Factory Method工廠方法

“對象創建“模式 通過”對象創建“模式繞開new&#xff0c;來避免對象創建(new)過程中所導致的緊耦合&#xff08;以來具體類&#xff09;&#xff0c;從而支持對象創建的穩定。它是接口抽象之后的第一部工作。 典型模式&#xff1a;Factory Method&#xff0c;Abstract Facto…

centos 關閉防火墻_CentOS7操作系統下如何關閉防火墻

centos系統如果不關閉防火墻在使用中會遇到不少問題&#xff0c;而且centos7和centos6關閉防火墻的方式不一樣。centos6:1.永久性生效&#xff0c;重啟后不會復原開啟&#xff1a; chkconfig iptables on關閉&#xff1a; chkconfig iptables off2.即時生效&#xff0c;重啟后復…

web 網頁按比例顯示圖片 js

原文鏈接&#xff1a;http://blog.csdn.net/liqinghuiyx/article/details/5442349 在動態站點上經常需要上傳自己的圖片&#xff0c;而這些圖片的大小是未知的&#xff0c;在顯示成縮略圖的時候必須進行按比例的縮放才能美觀地顯示。以最近做的golf網站&#xff08;http://www…

黑馬C++設計模式1

設計模式的基礎是&#xff1a;多態。 設計模式綜覽表&#xff1a; 單例模式&#xff1a;是保證一個類僅有一個實例&#xff0c;并提供一個訪問它的全局訪問點。 簡單工廠模式&#xff1a;通過專門頂一個一個類來負責創建其它類的實例&#xff0c;被創建的實例通常都具有共同的父…

對于未來的一點思考

最近在思考一個問題&#xff1a;以后的發展路線。   自己算是走上了IT的道路&#xff0c;但現在也只是在程序員階段&#xff0c;當然還未畢業&#xff0c;以后的路還很長&#xff0c;但是這個問題確是現在或以后不得不面對的一個問題。  上學期未那兩個月&#xff0c;去了N…