当前位置: 代码迷 >> J2SE >> 请问个SocketException Socket is closed错误有关问题
  详细解决方案

请问个SocketException Socket is closed错误有关问题

热度:77   发布时间:2016-04-23 21:01:14.0
请教个SocketException Socket is closed异常问题
初学Socket,嘿嘿


ServerSocketFactory factory = ServerSocketFactory.getDefault();
ServerSocket serverSocket = factory.createServerSocket(8888);
Socket socket = serverSocket.accept();


OutputStream out = socket.getOutputStream();
InputStream in = socket.getInputStream();
// 用in和out做一些事情
// 。。。

// 关闭
socket.getOutputStream().close();
socket.getInputStream().close();// 这句抛SocketException socket is closed
socket.close();
serverSocket.close();


直接使用out.close()和in.close()就没有问题。。。

是getInputStream()抛的异常。用==判断了一下,getInputStream()返回的和in是同一个对象。不知为何不能重新用get方法获得一遍。
------解决方案--------------------
肯定的,你用in out 关闭是关闭你在socket中使用的IO流,你用socket再次调用get input stream是重新建立对象,不是关闭上次使用的IO流
  相关解决方案