我在windows 10上测试对一个socket程序的最大连接数,发现建立了大概16000个左右的socket客户端之后就提示错误:由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。
有人说遇到这个错误原因是虚拟内存太小或者C盘满了。但我的情况显然不是,硬盘内存都没用用完,跳过这个结论。
经过查询msdn,这是windows 10系统的限制。在报错之后,我确实连浏览器搜东西都无法打开了,可见占用的应该是系统级别的网络连接类的信息。修改(初次操作实际是添加DWORD类型)注册表项目可以修改这个默认配置(Windows下,运行 regedit,回车进入):
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
查看有没有:MaxUserPort,设置10进制值为65534(已经是系统最大),无需重启即可生效
原文地址:
https://www.opengps.cn/Blog/View.aspx?id=950
文章的更新编辑依此链接为准。欢迎关注源站原创文章!