日期:2014-05-20  浏览次数:20684 次

java输入流的问题
最近用java写一个socket文件接收端,先接收前4个字节文件的大小,但是出现以下错误(如下),请问是哪里出错了?

Exception in thread "main" java.net.SocketException: socket closed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at 智能识别系统客户端.Client.readFileLength(Client.java:95)
at 智能识别系统客户端.Client.TransportFile(Client.java:62)
at 智能识别系统客户端.Client.main(Client.java:112)

//接收文件大小
private int readFileLength(InputStream is) throws IOException
{
byte[] l = new byte[4];
is.read(l);
return b2i(l);
}

------解决方案--------------------
1 你readFileLength会不会是异步执行在close之后。
2 服务端主动关闭socket.