我有一个服务器和多个通过 TCP 套接字连接的客户端。服务器侦听连接的客户端,这些客户端首先使用其唯一的设备 ID 注册自己。当设备首次注册时,服务器会向客户端发送一条小消息。这会唤醒客户端从另一个来源下载数据。
我们遇到的问题是网络使用 GPRS,而且在覆盖范围较差的地区,网络经常出现故障或服务质量很差。似乎正在发生的是,在客户端内部,即使网络层下降,NetworkStream.Read() 调用也会阻塞。没有抛出异常,即使网络返回,调用似乎也没有检测到任何数据。
这有什么原因吗?我该如何解决这个问题?
我原以为 NetworkStream 至少会引发异常,以便客户端可以进入重试连接阶段。