I.はじめにTCPファイル転送の問題
私は読んでいるときにTCPソケットを通してデータのチャンクを送信して、ファイルから開いて読み込みます。
SENDERコード
byte[] buffer = new byte[16384];
while ((in.read(buffer)) > 0)
{
SendProtocol(new FileTransfer(sender, receiver, buffer);
}
受信CODE
if(o instanceOf FileTransfer)
FileTransfer tf = (FileTransfer) o;
out.write(tf.getData);
}
II。問題
TCPソケットを介してプロトコルを送信した後、送信されたバイトを表示します。彼らはすべてユニークです。受信側では、受け取ったバイトはちょうど同じバイト[]です。
III。例
SENDER BYTES
[3, 3, 5, -44, 4, 3]
[99, -3, 5, -44, 7, 3]
[-11, 3, 5, -44, 4, 7]
[10, 6, 5, -44, 4, 66]
RECEIVER BYTES
[3, 3, 5, -44, 4, 3]
[3, 3, 5, -44, 4, 3]
[3, 3, 5, -44, 4, 3]
[3, 3, 5, -44, 4, 3]
あなた 'SendProtocol'と' FileTransfer'クラスは何ですか?彼らは標準的なJavaライブラリではありません。 –
SendProtocolは、クライアントのネットワーククラスの関数であり、ソケットのすべてのTCP接続を委任します。入力ストリームと出力ストリームでプロトコルをリッスンするループ。私のFileTransferクラスは標準のJavaライブラリではなく、送信側、受信側、およびバイトを含む直列化可能クラスオブジェクトです。 (これを行うためのよりよい方法はありますか?) – user515574