【问题标题】:How do i check if TcpClient is connected?如何检查 TcpClient 是否已连接?
【发布时间】:2012-08-25 07:06:07
【问题描述】:

当我的客户端应用程序关闭套接字甚至终止时,我的服务器仍然认为它还活着。我什至检查了TcpClient.Connected 然后我看到了这个。我把重要的部分加粗了

如果客户端套接字连接到远程资源最近一次操作,则为真;否则为假。

我如何知道套接字是否关闭?目前我必须做一个操作并得到一个异常来发现它是打开还是关闭

【问题讨论】:

    标签: .net tcpclient


    【解决方案1】:

    有很多事情可以破坏通过套接字的通信,其中许多完全超出您的控制范围,最好保持简单。

    目前你有一个完全可以接受的检测机制,非常简单且成本低。

    您可以进行心跳,每隔 X 次从客户端发送一条“我在这里”消息,然后让服务器运行并查看 X * 小提琴因子间隔是否没有消息。但是会使用处理器时间和带宽。

    另一个选项取决于您的客户端检测到它不再连接并请求新连接。如果您在请求中有唯一标识符,您可以为它运行现有的连接,将其杀死(如果存在),然后正常启动然后继续。

    我知道异常感觉不对,但只有在你不断失去连接时才会真正成为问题,如果你是这样的话,你的努力会更好地解决这个问题。

    【讨论】:

      猜你喜欢
      • 2010-11-26
      • 2021-01-02
      • 1970-01-01
      • 2012-08-05
      • 2015-06-21
      • 1970-01-01
      • 2019-08-21
      • 1970-01-01
      相关资源
      最近更新 更多