Java 从datainputstream读取数据时无限
我正在将图像文件从服务器套接字传输到客户端套接字,同时在外流上写入字节。我在流上写入整个字节数据后关闭流,然后它工作正常,但关闭套接字,因此为了防止套接字关闭问题,我没有从服务器端关闭外流,然后在客户端无限循环运行时关闭外流在从inputstream读取时 正在从下面的服务器端代码发送文件Java 从datainputstream读取数据时无限,java,android,sockets,inputstream,dataoutputstream,Java,Android,Sockets,Inputstream,Dataoutputstream,我正在将图像文件从服务器套接字传输到客户端套接字,同时在外流上写入字节。我在流上写入整个字节数据后关闭流,然后它工作正常,但关闭套接字,因此为了防止套接字关闭问题,我没有从服务器端关闭外流,然后在客户端无限循环运行时关闭外流在从inputstream读取时 正在从下面的服务器端代码发送文件 byte buf[] = new byte[1024]; int len; try { while ((len = inputStream.read(buf)) != -1
byte buf[] = new byte[1024];
int len;
try {
while ((len = inputStream.read(buf)) != -1) {
out.write(buf, 0, len);
}
out.flush();
// out.close();
inputStream.close();
} catch (IOException e) {
Log.d(TAG, e.toString());
return false;
}
客户端代码读取数据
byte buf[] = new byte[1024];
int len;
try {
Log.e(TAG, "Size of image on client side" + inputStream.readInt());
while ((len = inputStream.read(buf)) != -1) {
Log.e(TAG, buf + "");
out.write(buf, 0, len);
}
} catch (IOException e) {
Log.d(TAG, e.toString());
return false;
}
所以我应该使用任何分隔符来停止while循环,因为我理解的是,如果我不关闭服务器的outstream,while就不符合-1的条件
因此,任何人的帮助都将不胜感激
任何人的帮助都将不胜感激。
。可以是。但当人们做出反应时,就要表现出来。你对我发表的大多数评论都没有反应。你知道解决方案吗?告诉我