我有一个服务器和多个客户端通过TCP套接字连接。服务器侦听连接客户端,这些客户端首先使用其唯一的设备ID注册自己。当设备首次注册时,服务器然后用小消息“刺激”客户端。这会唤醒客户端从其他来源下载数据。
我们遇到的问题是网络通过GPRS而且通常在覆盖不良的地区网络瘫痪或服务质量差。似乎正在发生的事情是,在客户端内部,即使网络层丢失,NetworkStream.Read()调用也会阻塞。没有异常抛出,即使网络返回,呼叫似乎也没有检测到任何数据。
这有什么理由吗?我如何解决这个问题?
我原以为NetworkStream至少会抛出一个异常,所以客户端可以进入重试连接阶段。