1
我正在編寫基於this指南的服務器和客戶端。我的服務器不斷髮送一些數據給客戶端。異步套接字連接,服務器GUI在客戶端斷開連接時掛起(未響應)?
一切正常,除了服務器圖形用戶界面掛起(沒有響應)幾秒鐘當其中一個客戶端斷開連接意外問題(通常LAN電纜斷開或斷電)。然後套接字異常在幾秒鐘後拋出。坐在服務器計算機上的人不舒服。 如果客戶端正確斷開連接,不會造成任何掛起問題,而不是因爲停電。 原因是什麼?如何擺脫那掛?
我正在編寫基於this指南的服務器和客戶端。我的服務器不斷髮送一些數據給客戶端。異步套接字連接,服務器GUI在客戶端斷開連接時掛起(未響應)?
一切正常,除了服務器圖形用戶界面掛起(沒有響應)幾秒鐘當其中一個客戶端斷開連接意外問題(通常LAN電纜斷開或斷電)。然後套接字異常在幾秒鐘後拋出。坐在服務器計算機上的人不舒服。 如果客戶端正確斷開連接,不會造成任何掛起問題,而不是因爲停電。 原因是什麼?如何擺脫那掛?
爲套接字,連接等使用單獨的線程。 當任務需要時間時,UI線程應該保持分離。
如果對線程感到不舒服,那麼您可以在代碼中使用Application.DoEvents()
方法。雖然我不建議使用這個。
你可以給我鏈接工作多線程的C#示例?我使用了codeguru示例,因爲它包含完整的工作(服務器和客戶端)源代碼。 – user3000743
[鏈接](http://www.codeproject.com/Articles/14346/A-Simple-Multi-Threaded-Server-Client-Instant-Mess)你可以試試這個。您所使用的codeguru幫助也使用多線程,因此GUI不應該掛起...您必須知道套接字等待超時期間的回覆。確保GUI掛起或套接字連接正在等待超時。 –
如何在1秒後超時套接字連接?如何設置該屬性?我的情況下掛了幾秒鐘。 – user3000743