我的程序是这样的
客户端先发送数据给服务器,服务器处理之后返回结果
发送数据是成功了,但是客户端接受数据的时候,我用inputStream = new DataInputStream(client.getInputStream())创建一个输入流
但是却抛出异常,看到异常的解释中说是 socket被关闭了
可是程序中我并没有关闭这个socket呀,而且我也用了判断,如果socket是空的话返回请问这是什么原因阿,请大家帮忙
客户端先发送数据给服务器,服务器处理之后返回结果
发送数据是成功了,但是客户端接受数据的时候,我用inputStream = new DataInputStream(client.getInputStream())创建一个输入流
但是却抛出异常,看到异常的解释中说是 socket被关闭了
可是程序中我并没有关闭这个socket呀,而且我也用了判断,如果socket是空的话返回请问这是什么原因阿,请大家帮忙
DataInputStream inputStream = null; /* serverからデータを読むポイント */
DataOutputStream fileOut = null; /* ファイルへ書き込むポイント */ if (client == null){
return;
}
try{
int bufferSize = 2048;
byte[] buf = new byte[bufferSize];
inputStream = new DataInputStream(client.getInputStream());
fileOut = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(filepath)));
while (true) {
int read = 0;
if (inputStream != null) {
read = inputStream.read(buf);
}
if (read == -1) {
break;
}
fileOut.write(buf, 0, read);
}
System.out.println("savpath = " + filepath + "\n");
System.out.println("getMessage success!");
}catch (IOException ex) {
System.out.println("getMessage failure!");
close();
}finally{
try {
fileOut.close();
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
我的读取数据的函数是这样的
close(); //这里应该修改成reConnect(); if (client == null){
return; //这里最好改成connect();
}