2

シンプルな FTP サーバーを構築しようとしていますが、STOR コマンドでは、すべてのデータが送信されたためにデータ接続が閉じられたのか、それともデータ接続が途中で閉じられたのかを区別する方法がわかりません。

RETR コマンドでは送信するファイルのサイズはわかっていますが、STOR コマンドでは何バイト受信すればよいかわかりません。

また、データ接続が途中で閉じられた場合、FTP サーバーは何をすべきでしょうか?

4

1 に答える 1

2

FTP サーバーは、転送が中断されたかどうかを認識できません。それはプロトコルの欠点です。サーバーは取得したバイト数だけを保存し、ネットワークの問題が発生した場合、アップロードを再開するのはクライアントの責任です (通常は、サーバーにリモート ファイル サイズを問い合わせてから、バイト数のスキップと組み合わせて保存を行います)。すでに保存されています)。

この動作は、アップロードがいつ完了したかを知ることができないため、アップロードされたファイルに対してアクションを実行したいサーバー側プロセスがあるセットアップで問題を引き起こすことがよくあります。これは通常、アップロードの完了後にクライアントがファイルの名前を変更できるようにすることで処理されます。

于 2016-08-11T19:21:37.660 に答える