Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何正确关闭套接字及其输入流?_Android_Sockets_Inputstream - Fatal编程技术网

Android 如何正确关闭套接字及其输入流?

Android 如何正确关闭套接字及其输入流?,android,sockets,inputstream,Android,Sockets,Inputstream,假设我有一个连接的套接字和关联的InputStream。完成此连接后,如何正确关闭这些(无泄漏) 我在某处搜索过这个问题,但得到的答案要么模棱两可,要么相互矛盾。我应该吗 合上插座(仅限) 是否关闭输入流(仅限) 两个都关了 要在不泄漏任何资源的情况下清理套接字,请调用close(),然后放弃对套接字的任何引用。通常,此建议对所有JavaSocket子类都有效,包括ServerSocket和SSLSocket 正如所解释的,close()同时关闭套接字的InputStream和OutputSt

假设我有一个连接的套接字和关联的InputStream。完成此连接后,如何正确关闭这些(无泄漏)

我在某处搜索过这个问题,但得到的答案要么模棱两可,要么相互矛盾。我应该吗

  • 合上插座(仅限)
  • 是否关闭输入流(仅限)
  • 两个都关了
要在不泄漏任何资源的情况下清理
套接字,请调用
close()
,然后放弃对
套接字的任何引用。通常,此建议对所有Java
Socket
子类都有效,包括
ServerSocket
SSLSocket

正如所解释的,
close()
同时关闭套接字的
InputStream
OutputStream
,因此无需对这些流执行单独的
close()
调用

而且,仅关闭
输入流
输出流
,是不够的。 通过对
Socket
基类()的源代码的检查,可以说明为什么这是正确的,至少对于Android是如此