我目前有一个异步 TCP/IP 套接字 C# WinForms 应用程序,它是“服务器”应用程序。应用程序持有客户端的持久套接字。我想实现一个心跳包来检测半开连接。
最初我想只创建一个循环并每隔 xx 秒将心跳发送到我的整个套接字集合。但是,我认为这对性能不利。
我想我应该以某种方式错开心跳并一次发送到数百个套接字。有没有人有任何经验/技术/实现来有效地实现这一目标?
我这样做(对于一个数量级的套接字)只是通过跟踪我上次与特定套接字交谈(或听到)的时间。在一个时间间隔内,我 ping 那些超过给定年龄的人。假设套接字连接/断开/通信统一,这给了我一个相当统一的分布。此外,您始终可以将 ping 限制为每次迭代的有限数量的套接字:因为您正在跟踪上次讨论的信息,因此您没有得到的信息下次仍然可以使用。
| 归档时间: |
|
| 查看次数: |
3094 次 |
| 最近记录: |