- 兩臺計算機通過套接字連接進行連接。如果服務器/客戶端從其末端關閉連接 (即關閉
InputStream
,OutputStream
和Socket
),那麼如何告知 關於斷開的另一端?有一種我知道的方法 - 試圖從InputStream
, 中讀取,如果連接已關閉,則會拋出IOException
,但有沒有其他方法可以檢測到? - 另一個問題,我看着在互聯網上的問題,看到
inputStream.available()
不能解決這個問題。這是爲什麼?
附加信息:我所要求的另一種方式,因爲我的項目變得很難處理,如果我必須嘗試從 InputStrem
讀取檢測斷線。JAVA:處理插座斷開連接
恩,不知道你希望如何解決這個問題。您仍然需要某種套接字讀取或寫入來確定它已關閉。 – Tudor
思考如何做到這一點,以便在對方關閉時(正確關閉而不是斷開連接)立即通知它的套接字: 1)專用於讀取套接字並將數據放入容器以備將來使用的線程處理,例如。 ArrayBlockingQueue。當它找到-1或IOException時,它可以通過設置一個標誌,調用某種方法或在隊列中放置一個EOS標記來停止並通知其他線程通信已結束(或已被中斷)。 2)其他線程可以在需要時讀取隊列,並在需要時檢查該標誌。 –
@SaintHill Allthat完全沒有增加你自己的閱讀。 – EJP