当我发送一个小文件时,一切正常。但是,当我尝试发送大约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);
}
答案 0 :(得分:1)
您假设read()
填充缓冲区,毫无疑问您也会在客户端犯同样的错误。你必须循环。