• ベストアンサー

Visual C++からftpを使う

ftpを使って他のPCと通信するプログラムをVisual C++を使って書こうとしています。(相手側PCはftpを拡張していろいろな拡張コマンドを持っています。よって、ftpのコマンドはファイル転送に限られません。)この場合、基本的にどのような形でプログラミングすればいいのでしょうか? 例えば、下の1や2の方法になるのかなと考えてます。 1.WinSockを使ってTCPで相手側PCとセッションを張り、それ以降はftpのコマンドをプログラムから直接送って、リターンも直接解釈するようなプログラムとする。 2.MFCの中にはftpを扱うためのクラスが用意されているのでそれを使う。 ネットワークプログラミングは初心者です。どのような方法が良いか教えてください。また、良いサンプル・コードがありましたらご紹介ください。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • onti
  • ベストアンサー率37% (9/24)
回答No.2

1、2どちらを使用するかは、その接続しようとしている FTPサーバのどの機能(コマンド)を使用するかでかわる と思います。 FTPサーバとして提供されているのであれば、FTPコマンド のやりとりの方法は一般的なFTPコマンドと同じはずなので 一般的なファイル転送しか必要ないというのであれば、 MFCのftpライブラリを使用するほうがベストかと思います。 また、そのFTPサーバの特有な拡張機能と使用するのであれ ば、WinsockでTCP/IPを使用してやり取りするアプリケーション を作成するのがよいかと思います。 但し、独自でFTPコマンドのやり取りをするアプリケーション を作成する場合には、FTPサーバとのメッセージのやり取り の部分を作成するのがちょっと面倒になってくるかもしれません。 FTPサーバから送られてくるメッセージを正常、異常としっかり 把握しておかないとFTPサーバに対応できないかもしれません。 プログラミング初心者であれば、2のほうでやってみたほうが よいのではないかと思いますが。

zuntac
質問者

補足

回答、ありがとうございます。「Visual C++で用意されているクラスを使う」というのは具体的には「CFtpConnectionクラスを使う」ということでしょうか? このクラスは使ったことが無いのですが、これを使うのが良いのであれば、このクラスの使用方法について検討したいと思います。でも、このクラスは「独自に追加されたftpコマンドには対応できない?」のでしょうか?「できない」のではなくて、「ちょっと面倒」であればさらに調べたいと思います。

その他の回答 (3)

  • onti
  • ベストアンサー率37% (9/24)
回答No.4

CFtpConnectionを使用すれば、拡張のFTPサーバでも対応 できそうですね。 CFtpConnection::Commandを使用して、FTPサーバに対して そのFTPサーバが提供している拡張機能用のコマンドを送信 すれば、その応答を受け取れると思いますが。 拡張機能のコマンドシーケンスが明確であれば、大丈夫 だと思いますよ。

zuntac
質問者

お礼

「自信:あり」の心強い回答ありがとうございます。CFtpConnectionを検討してみます。

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.3

WinSockよりはwininetのFtpCommandが簡単でしょう。 MFCは知らないが同様な関数がありませんか?

zuntac
質問者

お礼

回答ありがとうございます。付属のドキュメントを探しましたがMFCでは見つかりませんでした。FtpCommandで検討してみます。

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

基本的には1じゃないでしょうかねぇ? ftpのようなものであって、ftpでは無いんですから。 あとは、そいつが提供してるライブラリ等は無いんですか? あればそれを使うのが簡単そうですが。

zuntac
質問者

補足

回答ありがとうございます。 「ftpのようなものであって、ftpでは無いんですから。 」というのは、拡張されたコマンドに対応するにはCFtpConnectionクラスでは対応できないという意味でしょうか? また、ライブラリは有りませんので、必要なものはMFCから調達するか、自分で書くかしかありません。

関連するQ&A