我只想清除一段時間以來我一直懷有的懷疑:即使代碼中沒有調用.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. 還有其他方式可以訪問OAUTH2以外的其他Google API嗎?
- 2. 沒有關閉被調用,本地端可以關閉套接字嗎?
- 3. 我可以使用Java以外的其他方式爲Android開發嗎?
- 4. 套接字意外關閉
- 5. Lotus Domino以外的其他任何IDE都可以使用嗎?
- 6. Matlab PARFOR循環可以以編程方式打開/關閉嗎?
- 7. 您可以在XML和XMLHttpRequest之外使用其他格式嗎?
- 8. Dockerfiles可以鏈接其他Dockerfiles嗎?
- 9. 是否可以禁用「關閉」按鈕,同時仍然可以從其他地方關閉?
- 10. WCF服務可以使用與套接字連接相同的方式嗎?
- 11. 以其他方式使用try/catch,但以條件爲例外?
- 12. PHP腳本可以檢測套接字是否已關閉?
- 13. Java/Groovy Socket - 檢測以非阻塞方式關閉的套接字
- 14. 從外殼關閉套接字
- 15. 什麼是將文件傳輸到除套接字連接以外的其他服務器的最佳方式
- 16. 可以用非明顯的方式使用unsigned關鍵字嗎?
- 17. 套接字例外:套接字已關閉
- 18. 是Xively web套接字關閉了嗎?
- 19. 除cron之外,還有其他方式可以定期執行SQL代碼嗎?
- 20. 可以通過Impala和其他方式訪問配置表嗎?
- 21. Flex - Socket.close()問題(#2031:套接字錯誤)
- 22. 打開和關閉其他UIViewControllers - 除了使用協議和委託以外的其他方法?
- 23. 在這種情況下,我可以使用PRG以外的其他模式或方法嗎?
- 24. 我可以得到終端標題嗎? (或以其他方式恢復舊的)
- 25. 可以關閉NFS的反向DNS嗎?
- 26. 我可以關閉web.xml中的HttpSession嗎?
- 27. 我們可以將MapReduce用於除分析以外的其他邏輯嗎?
- 28. 我可以從PHP中的$ thing運行SQL字符串嗎?或者有其他方法可以使用它嗎?
- 29. 套接字關閉後關閉線程
- 30. 外部事件可以導致打開的DbConnection關閉嗎?
on'System.exit()',或者可以使用'try-with-resources'自動關閉 – sidgate
好問題。如果您關閉套接字的輸入和輸出流,會發生什麼情況?這相當於關閉套接字嗎? – aioobe
請定義* closed *'如果之前調用過'Socket.close()',則Socket.isClosed()'只返回true。 – wero