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.mzph.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…