Java 从datainputstream读取数据时无限

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

我正在将图像文件从服务器套接字传输到客户端套接字,同时在外流上写入字节。我在流上写入整个字节数据后关闭流,然后它工作正常,但关闭套接字,因此为了防止套接字关闭问题,我没有从服务器端关闭外流,然后在客户端无限循环运行时关闭外流在从inputstream读取时

正在从下面的服务器端代码发送文件

  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的条件


因此,任何人的帮助都将不胜感激

任何人的帮助都将不胜感激。
。可以是。但当人们做出反应时,就要表现出来。你对我发表的大多数评论都没有反应。你知道解决方案吗?告诉我