我目前有一个异步的TCP/IP socket C# WinForms应用程序,它是“服务器”应用程序。应用程序将持久化套接字保存到客户端。我想实现一个心跳数据包来检测半开连接。
最初,我只想创建一个循环,并每隔xx秒将心跳发送到我的整个套接字集合。然而,我认为这对性能是不好的。
我想我应该以某种方式错开心跳,一次发送到几百个套接字。有没有人有任何经验/技术/实现来有效地实现这一点?
发布于 2012-08-15 04:25:00
我这样做(对于数量级更多的套接字)只是通过跟踪我上次与特定socket.on通话(或收到)多长时间后的间隔,我在给定的年龄内对它们执行ping操作。假设套接字连接/断开/通信是统一的,这给了我一个相当均匀的分布。此外,您可以始终将ping限制为每次迭代的有限数量的套接字:因为您正在跟踪最后一次谈话的信息,所以您没有获得的信息在下一次仍然是合格的。
https://stackoverflow.com/questions/11959951
复制相似问题