Winsock是否限制并发连接数?

时间:2014-01-12 19:51:51

标签: c# sockets networking client

我最近在C#(压力测试器)中创建了一个程序,它创建了一个包含100,000个套接字的数组,并将它们连接到指定的服务器。

每次我测试这个,程序停在16,334个套接字。最后连接的插座是插座16,334。他们都保持连接,直到我关闭它们,但我仍然无法将超过16,334个套接字连接到同一台服务器。

为什么会这样?这是Winsock的限制吗?

如果是这样,可以以某种方式被绕过吗?

1 个答案:

答案 0 :(得分:1)

您可以进行的出站连接数量有限制,并且确切地知道“停在”的含义可能有助于确定您的问题。哪个API返回哪个错误代码导致您“停止”?

限制往往与短暂端口(请参阅MaxUserPort)和可用内存和/或非页面缓冲池的可用性相关(尽管后者在Vista或更高版本中很少出现问题)。

当您的进程“停止”时,您可能会尝试运行netstat,因为这将显示还有多少其他进程已建立连接并且正在使用临时端口。

您还可以查看here,因为根据您运行的操作系统,某些信息可能对您有用。