• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Javaでファイル転送プログラム)

Javaでファイル転送プログラムを作成する方法

このQ&Aのポイント
  • Javaを用いてファイル転送プログラムを作成しています。
  • 参考URLとプログラムのコードを提供しましたが、うまく転送できません。
  • サーバ側とクライアント側のプログラムを作成し、受信バッファサイズやファイルの受信方法についても説明しました。どなたか解決方法をご教授ください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

例えば必ず最初の4バイトはデータ長を送信して、それに続いて(指定データ長分の)データを送信するとしておいて、受信側は、まず4バイトを受信して、データ長を解析して、実際のデータを受信します。 尚、余計なお世話かもしれませんが、バイナリデータとして送信するならバイトオーダに注意してください。バイトオーダが分からないようであれば、データ長を固定長の文字列表現で送るほうが簡単かもしれません。

santa1359
質問者

お礼

ありがとうございました。 無事解決することができました。

その他の回答 (1)

回答No.1

とりあえず貼り付けてあるプログラムを動かしてみたのですが、私の環境だと正しく動作するみたいです。 考えられるのは、 1.送信側がファイルから0バイトしか読み込めてない 一応確認のため :-) 2.受信途中で in.read() が -1 を返してきている 固定バイト数を送受信するまで必ず待つようにしてみて受信できるか試す。 ぐらいですかねぇ。 パケットキャプチャとかでTCP/IPレベルで確認したら、もう少しなにか分かるかもしれませんねぇ。

santa1359
質問者

補足

お返事ありがとうございます。 >2.受信途中で in.read() が -1 を返してきている >固定バイト数を送受信するまで必ず待つようにしてみて受信できるか試す。 ソケットを閉じずにできれば操作完了したいと考えているのですが、 固定バイト数を送受信するためには、どのようなコードが必要でしょうか。 よろしくお願いします。