ソケット経由でファイル (必ずしも txt ファイルではない) を送信する際に問題があります。サーバー、クライアントの 2 つのクラスがあります。ソケット出力ストリームから読み取り、バイトをファイルに書き込みたい場合、動作しているように見えますが、ファイルを開くと、何もありません(サイズ= 0 kbを示す破損)。また、ソケットを介してすべての種類のファイルを転送したいです。apache commons netを使用したくありません。ここに私のコードサーバークラスがあります
FileOutputStream toFile1 = new FileOutputStream(f);
BufferedOutputStream toFile= new BufferedOutputStream(toFile1);
BufferedInputStream bis=new BufferedInputStream(incoming.getInputStream());
byte[]buffer=new byte[2048];
int bytesRead=0;
while((bytesRead = bis.read(buffer)) >= 0)
{
toFile.write(buffer, 0, bytesRead);
}
toFile.close();
toFile1.close();
bis.close();
out.println("226 Connection Closed");
out.flush();
}
クライアントクラス
BufferedOutputStream output = new BufferedOutputStream(socket.getOutputStream());
byte[] buffer = new byte[60*2024];
int bytesRead = 0;
while ((bytesRead = input.read(buffer,0,60*1024)) != -1) {
output.write(buffer, 0, bytesRead);
}