我有一个客户端服务器 .net 应用程序,它们通过 tcp 进行通信。我的服务器定期向我的客户端发送原始字节数据包。
它在 99.9% 的情况下都很好用,但有时,当我的一个客户端崩溃(一年两次,不多)时,我的服务器会挂起。
我对其进行了调试(通过向我的客户端添加一些导致我的应用程序崩溃的测试代码),并注意到问题在stream.Write(bytes, 0, bytes.Length);
. 它简单不做任何事情,不响应,不返回,只是挂起。流是一个网络流。
我之前检查stream.CanWrite
过,但它的反应是真的。
那么,我如何在服务器端检查我的一个客户端崩溃了?在将数据发送到其他客户端之前,我应该检查 NetworkStream(或其他)什么?