2つの引用符:
プロトコルの残りのメッセージはすべて、の形式を取ります
<length prefix><message ID><payload>
。長さプレフィックスは4バイトのビッグエンディアン値です。メッセージIDは10進数の1バイトです。ペイロードはメッセージに依存します。request: <len=0013><id=6><index><begin><length>
要求メッセージは固定長であり、ブロックを要求するために使用されます。ペイロードには次の情報が含まれています。
- index:ゼロベースのピースインデックスを指定する整数
- begin:ピース内のゼロベースのバイトオフセットを指定する整数
- length:要求された長さを指定する整数。
私がすべてを書くとき、それは合計で5バイトになります。使用する
ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
byteStream.write( 13 );
byteStream.write( 6 );
byteStream.write( index );
byteStream.write( begin );
byteStream.write( length );
message = byteStream.toByteArray();
編集:申し訳ありませんが、私がそれを書いたとき、私はちょっと腹を立てていました。その苦いプロトコル。この仕様を使用します。