解决大量TCPIP连接后出现“因为系统缺乏足够缓冲区空间或者因为队列已满无法执行套接字上操作”的问题

摘要:
使用Microsoft提供的方法,可以放宽系统限制。具体方法如下。理论连接的最大数量约为60000,这是4字节整数的最大值。实际服务器端程序的服务能力取决于开发模型。IOCP模型在Windows中效率最高(在2K/XP/2003中可用)。此外,并发连接的最大数量与服务器的硬件配置有很大关系,特别是内存。我测量的最大并发连接数约为32000。有人通过增加内存和配置将并发连接数增加到51000。我尚未验证此号码

用微软提供的方法,可以放开系统的限制,详细方法见下文,最大理论连接数6万左右,也就是4字节整数的最大值。

实际服务器端程序的服务能力取决于开发模型,在 Window 下使用 IOCP 模型效率最高(2K/XP/2003下可用),另外最高并发连接数与服务器的硬件配置特别是内存有很大关系。我实测的最大并发连接数为 3.2万左右,有人通过增加内存和提高配置的方法使并发连接数增加到了5.1万左右,这个数字我没有验证过,仅供参考。


 

 

症状

如果您尝试建立 TCP 连接从端口是大于 5000, 本地计算机响应并以下 WSAENOBUFS (10055) 错误信息:
因为系统缺乏足够缓冲区空间或者因为队列已满无法执行套接字上操作。

解决大量TCPIP连接后出现“因为系统缺乏足够缓冲区空间或者因为队列已满无法执行套接字上操作”的问题第1张回到顶端

解决方案

要点 此部分, 方法或任务包含步骤告诉您如何修改注册表。 但是, 如果修改注册表错误可能发生严重问题。 因此, 确保仔细执行这些步骤。 用于添加保护之前, 修改备份注册表。 然后, 在发生问题时还原注册表。 有关如何备份和还原注册表, 请单击下列文章编号以查看 Microsoft 知识库中相应:
322756 (http://support.microsoft.com/kb/322756/) 如何备份和还原在 Windows 注册表


默认最大数量的短暂 TCP 端口为 5000 ' 适用于 ' 部分中包含产品中。 这些产品中已添加新参数。 要增加最大值是短暂端口, 请按照下列步骤操作:
1.启动注册表编辑器。
2.注册表, 中找到以下子项, 然后单击 参数 :
HKEY _ LOCAL _ MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
3.在 编辑 菜单, 单击 新建 , 然后添加以下注册表项:
MaxUserPort 值名称:
值类型: DWORD
值数据: 65534
有效范围: 5000 - 65534 (十进制)
默认: 0x1388 5000 (十进制)
说明: 此参数控制程序从系统请求任何可用用户端口时所用最大端口数。 通常, 1024 的值和含 5000 之间分配临时 (短期) 端口。
4.退出注册表编辑器, 并重新启动计算机。
注意 一个附加 TCPTimedWaitDelay 注册表参数决定多久关闭端口等待可以重用关闭端口。

免责声明:文章转载自《解决大量TCPIP连接后出现“因为系统缺乏足够缓冲区空间或者因为队列已满无法执行套接字上操作”的问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇eclipse 灵活使用makefile来编译C/C++直流电源防反接措施下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

五种常见Windows服务无法启动问题的排错方法

在使用windows过程中经常遇到服务启动问题,判断起来比较麻烦,而且有些问题还无法通过查看微软知识库文章得到解决。所以这里进行一个简单的小结,帮助初学者解决常见的服务无法启动的问题 在微软新闻组里有很多网友咨询有关Windows服务无法启动的问题,例如无法启动“Logical Disk Manager”服务。这类服务出错的现象往往是五花八门,判断起来比较...

bat修改注册表

bat添加注册表,这里只是其中一部分,以后再补充。各项参数介绍的挺详细的,认真按照语法要求写就可以。 reg add "HKCUSoftwareMicrosoftWindowsCurrentVersionRun" /v "test" /d "c:windowssystem32 egedit" /f命令提示符reg /?看一下帮助。关于reg add 的帮你...

软件自启动方式c#

软件自启动的方式 参考文档: https://docs.microsoft.com/en-us/previous-versions/technet-magazine/ee851671(v=msdn.10)?redirectedfrom=MSDN   建议方式:1.快捷方式,2.2CurrentUser注册表(测试代码见7、8章节) 1.  将软件的快捷方式...

为自己编写的windows应用程序制作安装包

1 写好了一个windows程序之后如何制作安装包 这个在vs中就可以直接发布了,可以制作msi的安装包和exe的安装包。 2 window应用程序安装包做了哪些事情 rpm安装包的话,只是把相应的文件拷贝到不同的目录。那么window安装包做了什么呢? msi里面有一个table,里面是一条条的指令,windows installer会解释并执行这些指令...

Radmin密码破解新招

Radmin 是一款很不错的服务器管理无论是 远程桌面控制 还是 文件传输速度都很快 很方便这样也形成了 很多服务器都装了 radmin这样的现在你说 4899默认端口 没密码的 服务器你上哪找?大家都知道radmin的密码都是32位md5加密后存放在注册表里的具体的表键值为 HKLMSYSTEMRAdminv2.0ServerParameters那在攻陷...

亚马逊AWS IoT平台分析

亚马逊AWS IoT 一.AWS IoT简介 1.1  AWS IoT平台的优势 (1)广泛而深入 AWS 拥有从边缘到云端的广泛而深入的 IoT 服务。设备软件、Amazon FreeRTOS 和 AWS IoT Greengrass 提供本地数据收集和分析能力。在云中,AWS IoT 是唯一一家将数据管理和丰富分析集成在易于使用的服务中的供应商,这些...