我正試圖在java中創建一個相當簡單的客戶機/服務器應用程序。客戶端有兩個線程,服務器有兩個線程(每個客戶端),一個用於輸入和輸出。我通過Object Streams幾乎不斷地發送數據。讀取()塊。我需要能夠中斷read()線程(即斷開連接)。我該怎麼做呢?可中斷套接字讀取Java
2
A
回答
1
只需關閉包裝在套接字上的輸出流即可。如果這也阻止了您的平臺,請使用讀取超時並讓讀卡器在每次跳閘時檢查斷開連接標誌。
1
關閉Socket
,並且read
方法將被中斷IOException
。處理這個異常來清理你的線程。
0
您可以使用非阻塞呼叫或在線程上使用Interrupt method。一旦中斷,讀操作將拋出一個異常,你可以捕捉並很好地結束線程。
+1
只有套接字是InterruptibleChannel時,這纔是真的。 – EJP 2012-07-24 02:27:25
相關問題
- 1. Java套接字BufferedReader讀取不讀
- 2. 從Java的套接字讀取字節
- 3. 的Java套接字讀取阻斷無限
- 4. 套接字java斷開
- 5. Java套接字寫入然後從套接字讀取
- 6. Java套接字從套接字實時讀取
- 7. Java套接字讀取超時異常
- 8. Java - 從套接字通道讀取
- 9. Java套接字不讀取數據
- 10. Java從套接字讀取掛起
- 11. 讀取期間Java套接字超時
- 12. Java:套接字讀取超時異常
- 13. Java讀取套接字Tcp更快
- 14. java - 無法從套接字讀取
- 15. 非插入式Java套接字讀取
- 16. java TCP套接字消息中斷
- 17. 獲取套接字中可讀取的字節數
- 18. Java套接字可以讓客戶端無法讀取數據
- 19. 中斷連接套接字
- 20. C中的Unix套接字讀取套接字中的環路
- 21. Java:從連接的套接字中設置無阻塞讀取
- 22. 無法讀取套接字
- 23. 從C讀取套接字
- 24. 從套接字讀取
- 25. wxWidgets從套接字讀取
- 26. 異步套接字讀取
- 27. 從TCP套接字讀取
- 28. 異步套接字讀取
- 29. 從套接字塊讀取
- 30. 用pcap讀取套接字
認爲這[鏈接](http://www.roseindia.net/javatutorials/shutting_down_threads_cleanly.shtml)實際上可以幫助你。 – Jasonw 2012-07-23 01:33:53
你有沒有嘗試使用非阻塞讀取插座?還有一個循環來不斷檢查一個條件,以便當你需要斷開連接時,你可以在非阻塞讀取返回後斷開連接?您可以使用NIO或setSoTimeout來創建一個非阻塞套接字。 – 2012-07-23 02:50:58