我有一臺服務器和多個通過TCP套接字連接的客戶端。服務器監聽首先使用其唯一設備ID註冊自己的連接客戶端。當設備首次註冊時,服務器會通過一條小消息「刺激」客戶端。這喚醒了客戶端從另一個來源下載數據。即使網絡出現故障,NetworkStream.Read仍會阻止
我們遇到的問題是,網絡通過GPRS,經常在覆蓋範圍較小的地區,網絡出現故障或服務質量較差。似乎發生的情況是,在客戶端內部,即使網絡層丟失,NetworkStream.Read()調用也會阻塞。沒有異常拋出,即使網絡返回時,調用似乎也沒有檢測到任何數據。
這是否有任何理由?我該如何解決這個問題?
我原以爲NetworkStream至少會拋出異常,所以客戶端可以進入重試連接階段。
TCP需要輪詢。它沒有任何事件。我實現了一種機制來檢查服務器/客戶端是否通過'netstat'連接。你可以閱讀[這裏](http://www.timvk.be/news.php?readmore=33)。我希望它對你有幫助。 – TimVK