0

シンプルな FTP サーバーを実装しています。デバッグ時には、FileZilla クライアントを使用してサーバーを接続しようとします。コマンド パネルに表示されるリクエストとレスポンスのパターンを以下に示します。

GREETING: 220 (FTP v1.0)
REQUEST:  USER ***
RESPONS:  331 Password?
REQUEST:  PASS ********
RESPONS:  230 login successfully.
REQUEST:  PWD
RESPONS:  257 "/a/" is current directory.
REQUEST:  TYPE I
RESPONS:  200 Type set to I.
REQUEST:  PASV
RESPONS:  200 127,255,0,0,175,200(I specify local port 45000)
REQUEST:  LIST
RESPONS:  150 here is the listing
RESPONS:  226 Transfer done.

Fail to read directroy.ただし、ソケットでストリームを取得できるため、パッシブ接続が実際に確立されていると思われるエラーが続きます(C#でサーバーを実装しています)。しかし、なぜエラーが発生するのかわかりません。データを同期サーバーとクライアントに直接送信するのではなく、制御接続のようなハンドシェイク/グリーティング情報を送信する必要があるためですか? はいの場合、この情報のステータス コードは何ですか?

よろしくお願いします。

4

1 に答える 1

1

データ接続にハンドシェイクはありません。

「ディレクトリの読み取りに失敗しました」というエラーは、サーバーが返すフォルダー リストの形式が正しくないことが原因でしょうか?

于 2012-04-27T07:14:18.870 に答える