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);
}
2 个解决方案
#1
1 你readFileLength会不会是异步执行在close之后。
2 服务端主动关闭socket.
2 服务端主动关闭socket.
#2
1、执行顺序是这样的,不是这问题
try
{
int length;
length = readFileLength(is); //接收文件大小
readFileContent(is,fos,length); //接收文件
}
finally
{
is.close();
fos.close();
}
2、检查过服务器程序了,服务器没有主动关闭
#1
1 你readFileLength会不会是异步执行在close之后。
2 服务端主动关闭socket.
2 服务端主动关闭socket.
#2
1、执行顺序是这样的,不是这问题
try
{
int length;
length = readFileLength(is); //接收文件大小
readFileContent(is,fos,length); //接收文件
}
finally
{
is.close();
fos.close();
}
2、检查过服务器程序了,服务器没有主动关闭