将文件从服务器发送到客户端java

时间:2015-12-22 08:54:33

标签: java sockets server client

当我发送一个小文件时,一切正常。但是,当我尝试发送大约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);
}

1 个答案:

答案 0 :(得分:1)

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