我有一个简单的程序,它使用 TcpClient 和 SslStream 将数据写入套接字。
为了测试它,我在晚上运行程序,这样我的程序会打开连接,很长一段时间什么都不写,所以防火墙或远程服务器会关闭连接。今天早上我查看了 TCPView 并确认连接已关闭,然后告诉我的程序写入套接字。
写入时未引发异常。但是,接下来的 Write 确实如预期抛出了这个异常:“System.IO.IOException: Unable to write data to the transport connection: An existing connection was forced closed by the remote host”</p>
我可以看到为什么即使 TcpClient.Connected 确实没有连接也可以返回 True,但是为什么 Write 不会在实际关闭的连接上抛出异常(如 TCPView 中所验证)?