这个异常是我遇到是在多线程访问服务器端的时候,由于多线程不安全,线程提前关闭了socket对象导致的
public class Server {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(8888);
Socket socket = serverSocket.accept();
new Thread(new Runnable() {
@Override
public void run() {
....doSomething
}
}).start();
//不能在这里关闭socket,因为这里是主线程,子线程没执行完,主线程就关闭了socket,就会出异常
//socket.close();
}
}
也就是说要再同一个线程中关闭socket资源.
如果对你有帮助,请点个赞,说明我是正确的;
如果大牛觉得有错误,请不要吝啬,留言指出,感谢!