gpt4 book ai didi

c# - 中断后重连TCPClient

转载 作者:可可西里 更新时间:2023-11-01 02:33:26 24 4
gpt4 key购买 nike

我有一个客户端应用程序的多个实例,通过 TcpClient 通过互联网连接到一个主应用程序。 (都是我编码的)。所以连接是这样的:

TcpClient.Connect(ip, 端口)

我现在希望它能处理各种类型的断开连接事件:

  1. 主应用程序(服务器)或客户端应用程序计算机失去互联网连接。

    • 恢复连接时,通信似乎中断了,但当我尝试重新连接时,我收到消息:“已在已连接的套接字上发出连接请求”
    • 所以我需要关闭并重新启动客户端应用程序。
  2. 主应用程序(服务器)已关闭并重新启动。

    • 重新启动主应用程序,然后尝试重新连接客户端应用程序,会导致与上述相同的错误。

那么,我需要做什么?每当发生此类中断时,我是否需要在客户端应用程序中实例化一个新的 TcpClient?我还没有尝试过,所以不知道这是否是一个糟糕的解决方案?

最佳答案

do I need to instantiate a New TcpClient in the Client Apps, whenever such interruption occur?

是的。如果 TcpClient 表示的连接断开,则不能使用该对象进行进一步通信,也不能再次连接它。创建一个新的 TcpClient 对象。

您的问题很可能是 NAT 网关使您的 TCP 连接超时,因此您的服务器<->客户端之间无法通过,如果您的客户端所做的只是从连接中读取,它不会发现这种情况,并且它认为连接仍然打开。

关于c# - 中断后重连TCPClient,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5910568/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com