Javaを使用して、あるコンピューターから別のコンピューターにファイルを送信しようとしています。私は以下のコードを書きました。送信者と受信者の両方が同じコンピューターで起動されている場合は正常に動作しますが、異なるマシンで動作している場合、受信したファイルサイズは元のファイルよりも大きく、破損しています。
注:最大10MBのファイルを転送しようとしています。
どうすればこれを修正できますか?
送信者:
ServerSocket server_socket = new ServerSocket(8989);
File myFile = new File(myPath);
Socket socket = server_socket.accept();
int count;
byte[] buffer = new byte[1024];
OutputStream out = socket.getOutputStream();
BufferedInputStream in = new BufferedInputStream(new FileInputStream(myFile));
while ((count = in.read(buffer)) > 0) {
out.write(buffer, 0, count);
out.flush();
}
socket.close();
受信者:
Socket socket = new Socket(address, 8989);
FileOutputStream fos = new FileOutputStream(anotherPath);
BufferedOutputStream out = new BufferedOutputStream(fos);
byte[] buffer = new byte[1024];
int count;
InputStream in = socket.getInputStream();
while((count=in.read(buffer)) >0){
fos.write(buffer);
}
fos.close();
socket.close();