0

そこで、ファイルをバイト配列に読み込んでから、それをチャンクに分割し、UDP を使用してネットワーク経由で送信します。

Path path = Paths.get("files_upload/music.mp3");
byte[] objectBytes = Files.readAllBytes(path);

サーバーでは、すべてのチャンクをバッファーに読み込みbyte[] objectBytes、クライアントで行ったのと同じ結果になります。ここで、この場合は music.mp3 という元のファイル名を使用して、ファイルをディスクに書き込みたいと思います。では、バイト配列からファイル名を取得するにはどうすればよいでしょうか?

4

1 に答える 1

3

バイト配列にファイル名が含まれていません。別送すればいいのに。パスで getFileName を呼び出し、結果の文字列で getBytes() を使用してそれをバイト配列に変換できます。

String fileName = path.getFileName();
byte[] fileNameBytes = fileName.getBytes();

次に、これを最初に送信し、反対側で読むことができます。これにはパス全体が含まれず、ファイルの名前のみが含まれることに注意してください(この場合は music.mp3 )。

ところで、本当に UDP を使用しますか? データの転送中に 1 つか 2 つのパケットが失われた場合はどうなりますか? サーバー上でそれをどのように検出しますか?

于 2013-02-24T14:17:45.350 に答える