我正在使用 TcpClient 与硬件设备进行通信。作为测试过程的一部分,与设备的通信可能会中断 30 秒左右的时间。这很好,有时也是有意的。
当我在通信中断时向设备发送数据时,问题就开始了。因为我使用的是 TcpClient,所以我得到一个 IO 异常并且连接被断开。设备端的连接仍然打开。我怎样才能:
- 重新连接到设备上的开放连接?创建一个新的 TcpClient 将在设备端创建一个新的连接并且是不需要的......
- 也许让 TCP 重传时间超过 30 秒?(Windows 7)
您最好的方法是交换会话标识符或使用其他方式来跟踪连接并使用代码来处理简历。您可以增加SendTimeout 属性的值,但接收端仍可能最终导致连接超时。
一旦关闭,您就无法重新打开与 TcpClient 的特定连接。在我看来,您可能这样做的唯一其他方法(原始套接字代码)似乎比它的价值更麻烦。