首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么这个错误会产生:java.net.PlainSocketImpl.checkNotClosed(PlainSocketImpl.java:116)?

为什么这个错误会产生:java.net.PlainSocketImpl.checkNotClosed(PlainSocketImpl.java:116)?
EN

Stack Overflow用户
提问于 2016-12-30 20:54:56
回答 1查看 128关注 0票数 2

我正在使用Android上的Socket,并不断地得到这个错误。

逻辑猫:

代码语言:javascript
复制
[xiaomi-mi_4i-a98ed4b2]: E/File couldn't be stored: java.net.PlainSocketImpl.checkNotClosed(PlainSocketImpl.java:116)
[xiaomi-mi_4i-a98ed4b2]: W/System.err: java.net.SocketException: Socket is closed
[xiaomi-mi_4i-a98ed4b2]: W/System.err:     at java.net.PlainSocketImpl.checkNotClosed(PlainSocketImpl.java:116)
[xiaomi-mi_4i-a98ed4b2]: W/System.err:     at java.net.PlainSocketImpl.getInputStream(PlainSocketImpl.java:213)
[xiaomi-mi_4i-a98ed4b2]: W/System.err:     at java.net.Socket.getInputStream(Socket.java:363)
[xiaomi-mi_4i-a98ed4b2]: W/System.err:     at com.rkp.musictest1.wifi.datatransfer.WifiSocket.receiveFileSocket(WifiSocket.java:264)
[xiaomi-mi_4i-a98ed4b2]: W/System.err:     at com.rkp.musictest1.wifi.datatransfer.WifiSocket$4.run(WifiSocket.java:249)
[xiaomi-mi_4i-a98ed4b2]: W/System.err:     at com.rkp.musictest1.wifi.datatransfer.SimpleAsynTask$simpleTask.doInBackground(SimpleAsynTask.java:65)
[xiaomi-mi_4i-a98ed4b2]: W/System.err:     at com.rkp.musictest1.wifi.datatransfer.SimpleAsynTask$simpleTask.doInBackground(SimpleAsynTask.java:23)
[xiaomi-mi_4i-a98ed4b2]: W/System.err:     at android.os.AsyncTask$2.call(AsyncTask.java:288)
[xiaomi-mi_4i-a98ed4b2]: W/System.err:     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
[xiaomi-mi_4i-a98ed4b2]: W/System.err:     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
[xiaomi-mi_4i-a98ed4b2]: W/System.err:     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
[xiaomi-mi_4i-a98ed4b2]: W/System.err:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
[xiaomi-mi_4i-a98ed4b2]: W/System.err:     at java.lang.Thread.run(Thread.java:818)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-30 21:01:53

您可以自己查看源代码-它是在这里输入链接描述

代码语言:javascript
复制
private void More ...checkNotClosed() throws IOException {
    if (!fd.valid()) {
        throw new SocketException("Socket is closed");
    }
}

fd是一个FileDescriptor;为此,我们发现;有关valid()方法:

返回:如果文件描述符对象表示有效、打开的文件、套接字或其他活动I/O连接,则为true;否则为false。

所以,长话短说:有些东西是封闭的,不应该关闭。但是,如果不看到导致此错误的代码/活动,则进一步调试是很困难的。

希望这足以让你现在就走!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41402580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档