假设我有一个已连接的套接字和关联的InputStream。完成此连接后,如何正确关闭这些连接(无泄漏)?
我已经在SO和其他地方搜索了此问题,但是我得到的答案是模棱两可或矛盾的。我是不是该
最佳答案
要清理Socket
而不泄漏任何资源,请调用close()
,然后丢弃对Socket
的所有引用。通常,此建议对所有Java Socket
子类(包括ServerSocket
和SSLSocket
)都是有效的。
正如documentation解释的那样,close()
会同时关闭套接字的InputStream
和OutputStream
,从而无需在这些流上执行单独的close()
调用。
而且,仅靠自己关闭InputStream
和OutputStream
是不够的。
对Socket
基类(old example)的源代码进行检查,可以证明至少在Android平台上确实如此。
关于android - 如何正确关闭套接字及其InputStream?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59019497/