我正在用java制作文件传输线程
这是服务器的代码
(fileWriter = new BufferedOutputStream(fileTransferSocket.getOutputStream()))
try {
BufferedInputStream fileReader = new BufferedInputStream(new FileInputStream(CLIENT_PATH + "/" + filename));
int packet;
while((packet = fileReader.read()) != -1)
fileWriter.write(packet);
fileWriter.flush();
fileReader.close();
System.out.println(filename + " send complete");
}
和客户的代码
(fileReader = new BufferedInputStream(fileTransferSocket.getInputStream()))
try {
BufferedOutputStream fileWriter = new BufferedOutputStream(new FileOutputStream(new File(PROGRAM_PATH + "/" + filename)));
int packet;
while((packet = fileReader.read()) != -1)
fileWriter.write(packet);
System.out.println(filename + " receive complete.");
fileWriter.close();
}
服务器打印
System.out.println(filename + " send complete");
这意味着服务器发送文件的每个字节。
但是,客户端不打印
System.out.println(filename + " receive complete.");
我检查了循环运行的次数(检查了服务器和客户端)
两个 while 循环都运行 685 次
我认为客户端的 while 循环无法识别文件传输结束。
有谁知道问题?