偽メッセがさらに良いものになるのを期待して…

ファイル転送について

コマンドのやり取りは >>144 を参照。
MSNFTP ではファイル転送をブロックごとに行なう。
1 ブロックごとに 3 バイトのヘッダがつく。
本家ではヘッダを含め 2048 バイトずつ転送される。
ヘッダの第 1 バイトは転送中断フラグだと思われる。
これが 0 の場合は継続、 1 の場合は中断となる。
第 2、第 3 バイトは後続するデータの長さ。
リトルエンディアンで表される。
>>442 の 0x07FD は 2045 を表し、ヘッダをあわせると丁度 2048 バイトになる。
受信側がキャンセルする場合、CCL というコマンドを発行する。
送信側は 1 ブロック転送するたびに受信側のソケットを調べて中断命令が来ていないか調べるべきである。

例1 2500 バイトのファイル転送
 00 FD 07 (2045 バイト分のデータ)
 00 C7 01 (445 バイト分のデータ)

例2 送信側キャンセル
 00 FD 07 (データ)
    ・
    ・
    ・
 01 FD 07 (データ)

山ねこさん、がんがれ。