正在从服务器向客户端发送文件 java

Sending file from Server to Client java

当我发送一个小文件时,一切正常。但是当我试图发送一个大约 5 兆字节的文件时,服务器抛出这样的异常:java.net.socketexception: connection reset by peer: socket write error.

这是我服务器的一部分:

try {          
    File myFile = new File("E:\work\java\in.pdf");
    long len = myFile.length();
    byte[] mybytearray = new byte[(int) myFile.length()];
    output = new PrintStream(serviceSocket.getOutputStream());
    output.println(clientCounter + " " + len);

    bis = new BufferedInputStream(new FileInputStream(myFile));
    bis.read(mybytearray, 0, mybytearray.length);
    os = serviceSocket.getOutputStream();
    os.write(mybytearray, 0, mybytearray.length);
    os.flush();
    serviceSocket.close();
}
catch(IOException e) {
    System.out.println(e);
}

您假设 read() 填满了缓冲区,毫无疑问您也在客户端中犯了同样的错误。你必须循环。