我有一个应用程序尝试打开尽可能多的 http 请求(为了对代理实现进行压力测试)
我觉得 Win7 (SP1) 可能对同时打开的连接数有限制(如果我没记错的话,可能是所谓的半开状态)。我能为客户端做些什么吗?而且我还使用充当代理服务器的 Vista PC 进行测试。
如果我可以将其配置为在客户端每秒至少维持 50 个新连接以及在服务器上维持更多新连接,那就太好了。
我按照这篇 Technet 文章通过设置 TcpNumConnections = 150,但这并没有什么区别。使用 tcpview,我仍然只能看到与我的 http 客户端关联的大约 20 个 tcp 套接字。
答案1
为了防止 TCP/IP 堆栈占用计算机上的所有资源,可以使用不同的参数来控制它可以处理的连接数。如果运行的应用程序不断打开和关闭连接(P2P),或者提供许多人同时尝试连接的服务(如 IIS 等 Web 服务器),则可以通过更改限制限制来提高这些应用程序的性能。
有一些参数限制 TCP 可以同时打开的最大连接数。
要查看有关如何增加可以同时打开的连接数的完整说明,请访问这网站。
答案2
答案就在stackoverflow 这里可能在这里有用,我看到了同样的问题。
要增加每个主机的连接限制,您可以在开始发出 HTTP 请求之前随时执行此操作。
System.Net.ServicePointManager.DefaultConnectionLimit = 1000;