0
私は単純なFTPサーバーを実装しています。デバッグ時に、私はサーバーを接続するためにFileZillaクライアントを使用しようとします。コマンドパネルで見つかった要求と応答のパターンは以下の通りである:FTPデータ接続が確立されたときに挨拶またはハンドシェイクが必要ですか?
GREETING: 220 (FTP v1.0)
REQUEST: USER ***
RESPONS: 331 Password?
REQUEST: PASS ********
RESPONS: 230 login successfully.
REQUEST: PWD
RESPONS: 257 "https://stackoverflow.com/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#で)。しかし、私はなぜエラーが起こっているのか分かりません。同期サーバーとクライアントに直接データを送信するのではなく、制御接続のような握手情報/挨拶情報を送信する必要があるからですか?はいの場合、この情報のステータスコードは何ですか?
ありがとうございました。
おそらく、私はテストのためにいくつかのダミーデータを使用し、このモジュールを改良して、再度テストします。ありがとうございました。 –
あなたは正しいです。フォーマットは一つのことです、もう一つは、私はデータ転送が完了した後に接続を開いたままにしておきます。なぜFileZillaがこのポリシーをとっているのか不思議です。たぶんすべての操作が1つのスレッドで完了していますか?時間があればsrcをチェックします。 –