0
我想知道TcpClient
的NetworkStream
如果發生超時到底發生了什麼。如果沒有收到數據流tcpclient關閉連接
在調試我發現的代碼,經過請求被髮送,並且如果沒有數據被提及的超時週期內接收到它拋出異常下面,不幸的是關閉連接(TcpClient.Connected
成爲假):
無法讀取數據從傳輸連接:連接 嘗試失敗,因爲連接方在一段時間後沒有正確響應 ,或者由於連接的主機未能響應,建立的連接失敗。
它引發異常是好的,但我想知道我可以如何防止它關閉連接。
如果有人能提供更多的見解,這將是非常好的。
通常情況下,服務器的設計方式會在客戶端停止一段時間後強制關閉連接。這允許更有效地利用服務器資源。但是,我想,看看你的信息,那不是你的情況。看起來你不能連接到你的服務器。請發佈MCVE(http://stackoverflow.com/help/mcve)。 – Dennis
如果連接從未完成,則無法保持打開狀態。所以我假設超時發生在初始連接之後。如果服務器關閉連接,則無法阻止連接關閉。通常,服務器在閒置時會關閉連接。在這種情況下,您使用KeepAlive選項,該選項定期向服務器發送一個空數據文件,以便服務器不關閉連接。 – jdweng
該異常意味着您的連接呼叫失敗。這與閱讀無關。尚未建立連接。郵政編碼。由於缺少代碼而暫時關閉。 Undiagnosable。 – usr