![]() |
1
3
我已经生成了一些直接使用套接字的代码,但是我缺乏对1000个客户端执行负载测试的方法。请尝试测试此代码与当前解决方案的比较情况,好吗?我会非常感兴趣的结果,因为我正在建设一个服务器,需要接受很多连接以及现在。
|
![]() |
2
2
除非我遗漏了什么,否则您将调用beingAcceptTCPClient,这是异步的,但是您将调用waitOne()来等待异步代码完成,这将有效地使进程同步。您的代码一次只能接受一个客户端。还是我疯了?至少,这看起来像是大量的上下文切换。 |
![]() |
3
2
在其他问题中也提到过,但我建议在tcplistener.start()方法中,使用重载,该重载允许您将backlog设置为高于一次所期望的最大连接数:
基本上,此选项设置允许多少等待调用接受的“挂起”TCP连接。如果您没有足够快地接受连接,并且此积压工作已满,则TCP连接将被自动拒绝,您甚至没有机会处理它们。 正如其他人提到的,另一种可能是加快处理传入连接的速度。但是,您仍然应该将backlog设置为更高的值,即使您可以加快接受时间。 |
![]() |
4
1
只是一个建议:为什么不同时接受客户机(通过使用
|
![]() |
5
1
首先要问自己的是“1000个连接同时都是合理的”。我个人认为你不太可能进入那种情况。更有可能在短时间内发生1000个连接。 我有一个TCP测试程序,我用它来测试我的服务器框架,它可以做的事情,像X连接,总共成批Y,每批之间的间隔是Z毫秒;我个人发现,这是一个比“一次大量”更真实的世界。它是免费的,可能会有帮助,你可以从这里得到它: http://www.lenholgate.com/blog/2005/11/windows-tcpip-server-performance.html 正如其他人所说,增加侦听积压,更快地处理连接,如果可能的话使用异步接受… |
![]() |
user2138149 · 双栈网络服务器无法按预期处理ipv4请求 4 月前 |
![]() |
Triet Doan · 套接字的类型提示是什么? 10 月前 |
![]() |
Ames ISU · 套接字缓冲区在Linux中是如何工作的? 11 月前 |