WinInetを使用してFTPサーバーに接続します。私はFtpCommand()
を使用して、アクティブモードからパッシブモードに切り替えるための "PASV"コマンドを送信します。私は今パッシブモードからアクティブモードに切り替える反対のコマンドを探しています。誰もこれを行う方法を知っていますか?WinInet FTPスイッチ接続中にアクティブモードにパッシブしますか?
答えて
アクティブモードは、PASV
(またはEPSV
)コマンドを送信する代わりにPORT
(またはEPRT
)コマンドを送信すると有効になります。 PORT
/EPRT
は、システムにアクティブに接続する必要のあるIP /ポートをサーバに通知します。
FTPプロトコルの仕組みを理解したい場合は、FTP仕様、RFC 959、およびそのさまざまな拡張子、特にRFC 2428とRFC 3659を読むことをお勧めします。
WinInetでは、通常、転送モードは、InternetConnect()
またはInternetOpenUrl()
を呼び出すと、セッションの開始時に確立されます。 INTERNET_FLAG_PASSIVE
フラグを指定すると、パッシブモードが強制されます。フラグを指定しない場合、モードはユーザーのデフォルトのインターネットオプションによって決まります。このモードでは、FtpGetFile()
/FtpPutFile()
とFtpFindFirstFile()
/InternetFindNextFile()
関数は、それぞれ独自のデータ接続で機能します。セッションのモードが確立されると、AFAIKは変更できません。
ただし、PASV
/EPSV
とPORT
/EPRT
含めて、手動で任意のFTPコマンドを送信するためにFtpCommand()
を使用することができます。 fExpectResponse
パラメータをTRUEに設定すると、データソケットが作成された場合、phFtpCommand
出力パラメータで新しいHINTERNET
ハンドルが得られます。そのハンドルを使用してInternetReadFile()
とInternetWriteFile()
とすると、そのデータ接続を介してファイルとディレクトリのリストを転送できます。
本当に、私はフラグを指定せずにwininetとinternetconnect()を使用していますが、ローカルでテストした結果、ftpコマンドと "PASV"オプションでパッシブモードに入ることができます。 (私は決してそれをオンラインサーバーにテストしたことはありません)EPRTコマンドmabyで同じことを試してみてください。 (私は後でオンラインサーバ上のこれらの2つのオプションをチェックし、何が起こっているかを見るでしょう)。新しいオプションに再接続すると、接続中に変更できない – Vas
- 1. ftpサーバに接続中に接続タイムアウト例外が発生しました
- 2. パッシブSTSをアクティブなSTSに接続します
- 3. アクティブFTPではなくパッシブFTP
- 4. FTP接続に失敗しました
- 5. FTPサーバーに接続する
- 6. FTPサーバーに接続し、ファイルにアクセス
- 7. インターネットに接続していますか?
- 8. 1 GenServerからアクティブモードで複数のTCP接続の管理
- 9. Powershell FTP接続
- 10. ftpに接続できません - バッチファイル
- 11. バッチスクリプトはftpサーバに接続しますか?
- 12. kafkaをftpに接続するには
- 13. エラー:ホストに接続中にETIMEDOUTを接続します
- 14. Teamcity ftpアップロードエラー接続
- 15. Curl FTP接続プール
- 16. Javaでローカルホストに接続するFTP
- 17. PHPStormのFTP接続に失敗する
- 18. 他のftpサーバに接続する.db
- 19. Powershellはスクリプトを使用してFTPに接続します
- 20. byepass lanスイッチへの接続
- 21. Pythonで 'Explicit FTP over TLS'に接続します。
- 22. MySqlに接続中にノード接続エラーが発生しましたか?
- 23. Zehon FTP接続を閉じるには
- 24. ftp経由でwampに接続
- 25. C#でCerberus FTP APIに接続
- 26. .net 2.0でFTPサーバーに接続
- 27. Visual Studio 2015からFTPに接続できません
- 28. VB.NET MySQLとFTP接続
- 29. ソナタメディアバンドルftp接続の設定?
なぜこの質問はC++とタグ付けされていますか? – Dai
なぜ質問にマイナス?私はftp接続のためにC++を使います。私はあなたが同じプログラム言語で質問していると確信している場合は、私は確信しています...そして、あなたが答えをよく知っていない場合は、他の質問を汚さないでください... – Vas
C++で質問にタグを付けると、いくつかのC++コード。それは完全にはっきりしていません。最初からC++でFTPクライアントを実装していますか? –