我只想清除一段時間以來我一直懷有的懷疑:即使代碼中沒有調用.close()
方法,是否可以關閉Java中的套接字?可以用socket.close()以外的其他方式關閉套接字嗎?
1
A
回答
1
1
這下面的代碼是在java.net.AbstractPlainSocketImpl
/**
* Cleans up if the user forgets to close it.
*/
protected void finalize() throws IOException {
close();
}
的finalize()運行垃圾收集器時被調用。所以如果你失去了所有對你的Socket的引用,它將被關閉。你不應該這樣做,因爲這是不好的做法 - 你永遠不知道垃圾收集器何時運行,所以套接字可以保持一段時間。我真的不知道這是否值得,因爲它確實在下面調用close()。關閉輸入和輸出流與套接字不同。我不認爲他們真的數。
+0
關閉輸入或輸出蒸汽關閉插座。從這個角度來看沒有什麼區別。 – EJP
相關問題
- 1. 關閉UDP套接字沒有socket.close()
- 2. 還有其他方式可以訪問OAUTH2以外的其他Google API嗎?
- 3. 沒有關閉被調用,本地端可以關閉套接字嗎?
- 4. 我可以使用Java以外的其他方式爲Android開發嗎?
- 5. 套接字意外關閉
- 6. 關閉以前打開的套接字
- 7. Lotus Domino以外的其他任何IDE都可以使用嗎?
- 8. Matlab PARFOR循環可以以編程方式打開/關閉嗎?
- 9. 一個線程可以打開一個套接字而其他線程關閉嗎?
- 10. 您可以在XML和XMLHttpRequest之外使用其他格式嗎?
- 11. Dockerfiles可以鏈接其他Dockerfiles嗎?
- 12. 我可以顯式關閉ctypes CDLL嗎?
- 13. 是否可以禁用「關閉」按鈕,同時仍然可以從其他地方關閉?
- 14. WCF服務可以使用與套接字連接相同的方式嗎?
- 15. 可以對一個KeyboardInterrupt [python]的不關閉套接字
- 16. 可以將cout與監視器以外的任何其他設備關聯嗎?
- 17. 以其他方式使用try/catch,但以條件爲例外?
- 18. 可以寫入UDP套接字嗎?
- 19. PHP腳本可以檢測套接字是否已關閉?
- 20. 關閉時,套接字是否可以發送信號?
- 21. 如何關閉文件以使其可以被其他處理器使用?
- 22. 可以用非明顯的方式使用unsigned關鍵字嗎?
- 23. Java/Groovy Socket - 檢測以非阻塞方式關閉的套接字
- 24. 什麼是將文件傳輸到除套接字連接以外的其他服務器的最佳方式
- 25. 從外殼關閉套接字
- 26. iPhone:我可以以編程方式禁用自動關閉顯示器嗎?
- 27. 鏈接被點擊後,我可以關閉Bootstrap模式嗎?
- 28. 關閉套接字
- 29. 關閉套接字?
- 30. 我可以使用Robotium關閉外部應用程序嗎?
on'System.exit()',或者可以使用'try-with-resources'自動關閉 – sidgate
好問題。如果您關閉套接字的輸入和輸出流,會發生什麼情況?這相當於關閉套接字嗎? – aioobe
請定義* closed *'如果之前調用過'Socket.close()',則Socket.isClosed()'只返回true。 – wero