代码之家  ›  专栏  ›  技术社区  ›  Mausimo

如何在2500多个套接字上实现TCP/IP心跳?

  •  4
  • Mausimo  · 技术社区  · 13 年前

    我目前有一个异步TCP/IP套接字C#WinForms应用程序,它是“服务器”应用程序。应用程序为客户端保留持久套接字。我想实现一个心跳数据包来检测半开放连接。

    最初,我只想创建一个循环,并每隔xx秒将心跳发送到我的整个套接字集合。然而,我认为这将对性能不利。

    我想我应该以某种方式错开心跳,一次发送到几百个套接字。是否有人拥有有效实现这一目标的经验/技术/实施?

    1 回复  |  直到 13 年前
        1
  •  5
  •   Marc Gravell    13 年前

    我这样做(对于数量级以上的插座)只是通过跟踪我最后一次与特定插座通话(或听到)是多久前。在一段时间内,我会对特定年龄以上的插座进行ping。假设套接字连接/断开连接/通信是一致的,这给了我一个相当均匀的分布。此外,每次迭代您总是可以将ping限制为有限数量的套接字:因为您正在跟踪最后一次谈话的信息,所以下次您无法访问的信息仍然符合条件。

    推荐文章