1

私が作成した FTP クライアントを226 Transfer OK使用すると、アップロードの完了後に FileZilla サーバーからメッセージを受信することがありますが、何も受信しないこともあります。226 Transfer OKFileZilla が送信しなかったことをサーバーで確認できるため、受信前にクライアントが切断されたわけではありません。

サーバーが完全なアップロードをいつ受信したかを知る必要があります。そうしないと、接続を閉じる前にファイル全体がネットワークに到達したかどうかがわからないからです。

226 Transfer OKメッセージの信頼性を損なう可能性のあるアイデアはありますか? 実際に送信するトリガーは何ですか?

4

1 に答える 1

2

私は自分でそれを理解しました!FIN/ACKFileZillaサーバーにコントロールソケットポートでメッセージを送信するように促すのは、データソケットポートでクライアントから送信されたメッセージであることがわかりました(データソケットポートで応答して226 Transfer OK独自のメッセージを送信した後)。FIN/ACK

WinRT では、データ ソケットを閉じるとFIN/ACK、クライアントからメッセージが送信されます。

したがって、FTP 接続を閉じるための適切な順序は、(最後のデータ パケットが送信された後) データ ソケットを閉じ、226 Transfer OK制御ソケットでメッセージを待ち、制御ソケットでQUITメッセージを送信してから、制御ソケットを閉じることです。

于 2013-03-11T20:59:05.427 に答える