如果没有通过流tcpclient接收到任何数据,请关闭连接

本文关键字:数据 连接 任何 tcpclient 如果没有 | 更新日期: 2023-09-27 18:28:01

我想知道在TcpClientNetworkStream上,如果发生超时,会发生什么。

在调试代码时,我发现在发送请求后,如果在提到的超时期内没有收到任何数据,它会抛出以下异常,并不幸地关闭连接(TcpClient.Connected变为false):

无法从传输连接读取数据:连接尝试失败,因为连接方没有正确响应一段时间后,或由于连接的主机无法响应。

它抛出异常是可以的,但我想知道如何防止它关闭连接。

如果有人能对此提供更多的见解,那就太好了。

如果没有通过流tcpclient接收到任何数据,请关闭连接

你检查过这个吗?中断后重新连接TCPClient我认为如果你的TCP连接有足够长的TTL,如果发生异常(我相信你会被抛出SocketException),你可以赶上并启动重试逻辑。这有几个实现,显然这将取决于用例,但通常在"放弃"连接之前会有多次尝试(配置值)。这样,您的经理将重试连接X次,如果连接成功,将继续连接,否则将在链中传播异常。