【问题标题】:Android 11. socketOutStream.close() closes SSLSocketAndroid 11. socketOutStream.close() 关闭 SSLSocket
【发布时间】:2021-01-16 12:23:54
【问题描述】:

当我在Android 11上使用此代码时

  OutputStream socketOutStream = mSocket.getOutputStream();
            socketOutStream.write(bb.array());
            socketOutStream.write(data);
            socketOutStream.flush();
            socketOutStream.close();

socketOutStream.close() 关闭SSLSocket,当我调用mSocket.getInputStream() 时,我得到java.net.SocketException: socket closed

如果我在 Android 10 及以下版本上使用此代码,则没有问题。

为什么会这样?

【问题讨论】:

    标签: android sockets ssl socket.io outputstream


    【解决方案1】:

    关闭流也会关闭套接字是很正常的。

    不仅在 Android 11 上。

    【讨论】:

    • 关闭此输出流并释放与此流关联的所有系统资源。 developer.android.com/reference/java/io/OutputStream
    • 与此流相关的系统资源 == SSLSocket?!
    • 安卓
    • 可以。但在 Android 11 上还有更多的东西可以更好地遵循这些规则。你为什么惊讶?究竟是什么问题?使用套接字时我从不关闭流。加入我!
    • 我很惊讶这段代码可以正常运行 5 年,并且在 10000 台设备上运行良好。))
    猜你喜欢
    • 1970-01-01
    • 2012-11-09
    • 2017-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-04
    • 2011-05-13
    相关资源
    最近更新 更多