在多台服务器(XP&2003)上测试客户端socket连接数最大到2000左右后,之后的连接就一直失败抛出连接异常:
由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作
因为在socket.ConnectAsync中报错,最初把问题定位到代码上,经多次查看未果.
后来发现连接数上不去的时候,IE网页也打不开,遂想到可能是操作系统的连接数限制,经拉谷歌搜后得到如下解决方案:
1.修改注册表以设置系统最大可用端口数量(win7中已设置)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters
设置 MaxUserPort = 0xFFFE(65534), 如没有此项则新建,类型为:REG_DWORD 值。
----------------------
修改以上设置后,需要重启系统生效