I'm making File Transfer Thread with java
Here is Server's Code
(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");
}
And Client's Code
(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();
}
Server Prints
System.out.println(filename + " send complete");
It means Server send every bytes of file.
However, Client doesn't print
System.out.println(filename + " receive complete.");
I checked how many times while loop runs(Checked Both, server and client)
Both while loops runs 685 times
I think Client's while loop doesn't recognize end of file transfer.
Anyone knows problem?