ftpを使って他のPCと通信するプログラムをVisual C++を使って書こうとしています。(相手側PCはftpを拡張していろいろな拡張コマンドを持っています。よって、ftpのコマンドはファイル転送に限られません。)この場合、基本的にどのような形でプログラミングすればいいのでしょうか?
例えば、下の1や2の方法になるのかなと考えてます。
1.WinSockを使ってTCPで相手側PCとセッションを張り、それ以降はftpのコマンドをプログラムから直接送って、リターンも直接解釈するようなプログラムとする。
2.MFCの中にはftpを扱うためのクラスが用意されているのでそれを使う。
ネットワークプログラミングは初心者です。どのような方法が良いか教えてください。また、良いサンプル・コードがありましたらご紹介ください。よろしくお願いします。
No.2ベストアンサー
- 回答日時:
1、2どちらを使用するかは、その接続しようとしている
FTPサーバのどの機能(コマンド)を使用するかでかわる
と思います。
FTPサーバとして提供されているのであれば、FTPコマンド
のやりとりの方法は一般的なFTPコマンドと同じはずなので
一般的なファイル転送しか必要ないというのであれば、
MFCのftpライブラリを使用するほうがベストかと思います。
また、そのFTPサーバの特有な拡張機能と使用するのであれ
ば、WinsockでTCP/IPを使用してやり取りするアプリケーション
を作成するのがよいかと思います。
但し、独自でFTPコマンドのやり取りをするアプリケーション
を作成する場合には、FTPサーバとのメッセージのやり取り
の部分を作成するのがちょっと面倒になってくるかもしれません。
FTPサーバから送られてくるメッセージを正常、異常としっかり
把握しておかないとFTPサーバに対応できないかもしれません。
プログラミング初心者であれば、2のほうでやってみたほうが
よいのではないかと思いますが。
この回答への補足
回答、ありがとうございます。「Visual C++で用意されているクラスを使う」というのは具体的には「CFtpConnectionクラスを使う」ということでしょうか?
このクラスは使ったことが無いのですが、これを使うのが良いのであれば、このクラスの使用方法について検討したいと思います。でも、このクラスは「独自に追加されたftpコマンドには対応できない?」のでしょうか?「できない」のではなくて、「ちょっと面倒」であればさらに調べたいと思います。
No.4
- 回答日時:
CFtpConnectionを使用すれば、拡張のFTPサーバでも対応
できそうですね。
CFtpConnection::Commandを使用して、FTPサーバに対して
そのFTPサーバが提供している拡張機能用のコマンドを送信
すれば、その応答を受け取れると思いますが。
拡張機能のコマンドシーケンスが明確であれば、大丈夫
だと思いますよ。
No.1
- 回答日時:
基本的には1じゃないでしょうかねぇ?
ftpのようなものであって、ftpでは無いんですから。
あとは、そいつが提供してるライブラリ等は無いんですか?
あればそれを使うのが簡単そうですが。
この回答への補足
回答ありがとうございます。
「ftpのようなものであって、ftpでは無いんですから。 」というのは、拡張されたコマンドに対応するにはCFtpConnectionクラスでは対応できないという意味でしょうか?
また、ライブラリは有りませんので、必要なものはMFCから調達するか、自分で書くかしかありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- サーバー Googleドライブなどを使わずにテザリングAndroidでWindowsとファイル共有 1 2023/02/19 13:14
- デスクトップパソコン ウイルスに感染しないファイルのバックアップ方法について 5 2022/09/11 11:27
- サーバー FTPサーバについて詳しい方(アクセス権のないディレクトリを非表示にする方法) 4 2022/08/22 22:33
- サーバー FFFTPで特定サイトだけUploadできない 4 2022/08/27 14:53
- サーバー NASの利用経験多い方教えてください! 1 2022/03/24 19:21
- プロバイダー・ISP hpb22の接続方法の変更 1 2023/08/06 18:47
- ドメイン・サーバー・クラウドサービス FileZillaを使用してwpXサーバーに接続できない 2 2022/03/29 21:02
- サーバー Laravelをレンタルサーバーにインストールするにはどうすればいいですか? 2 2022/06/29 10:17
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- その他(インターネット接続・インフラ) 楽天ひかりでホームページアップロードが出来ない 1 2022/07/30 10:02
このQ&Aを見た人はこんなQ&Aも見ています
-
【お題】NEW演歌
【大喜利】 若い人に向けたことは分かるけど、それはちょっと寄せ過ぎて変になってないか?と思った演歌の歌詞
-
あなたにとってのゴールデンタイムはいつですか?
一週間の中でもっともテンションが上がる「ゴールデンタイム」はいつですか? その逆で、一週間でもっとも落ち込むタイミングでも構いません。 よかったら教えて下さい!
-
忘れられない激○○料理
これまでに食べたもののなかで、もっとも「激○○」だった料理を教えて下さい。 激辛、でも激甘でも。 激ウマ、でも激マズでも。
-
おすすめのモーニング・朝食メニューを教えて!
コメダ珈琲店のモーニング ロイヤルホストのモーニング 牛丼チェーン店の朝食などなど、おいしいモーニング・朝食メニューがたくさんありますよね。
-
好きな和訳タイトルを教えてください
洋書・洋画の素敵な和訳タイトルをたくさん知りたいです!【例】 『Wuthering Heights』→『嵐が丘』
-
C言語(gcc), Linux, FTPプログラミング
C言語・C++・C#
-
C++によるファイル送受信プログラム作成について
C言語・C++・C#
-
<unistd.h>をVisualStudioでつかえるようにする
C言語・C++・C#
-
-
4
CString から LPCTSTRの型に変換
C言語・C++・C#
-
5
あるディレクトリ内のファイルをファイル名でソートして取得
C言語・C++・C#
-
6
マルチスレッドで同時にFTPアップロードをしたいです...
C言語・C++・C#
-
7
画面を強制的に再描画させる方法
C言語・C++・C#
-
8
charからLPTSTRへの変換方法
C言語・C++・C#
-
9
外部依存関係について
C言語・C++・C#
-
10
教えてください。FTPアップロードが出来なくなりました。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Visual C++からftpを使う
-
Teratermマクロの戻り値の取得失敗
-
popen使用時のエラー出力を出し...
-
system関数のエラー検出
-
gmailでのimap設定
-
シリアル通信でのread関数の戻り値
-
VB6.0でVISAを用いる
-
本文が最後に表示されてしまい...
-
ExcelVBA WorkSheet上の全てのC...
-
VBSで指定した時刻にメッセージ...
-
データリーダーからのデータ読...
-
バッチ(Windows2000)での解析エ...
-
テキストボックスのフォーカス...
-
EXCELで右クリックメニューの追加
-
バッチファイル pause時の文字...
-
Applescript-iTermを起動しコマ...
-
PERLのでバッグ
-
Windowsのバッチファイルでcall...
-
PCに保存していた写真を見られ...
-
OpenFileDialogを使った後にも...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォーム内のテキスト...
-
Teratermマクロの戻り値の取得失敗
-
テキストボックスのフォーカス...
-
Windowsのバッチファイルでcall...
-
system関数のエラー検出
-
バッチ(Windows2000)での解析エ...
-
telnetで接続した先のコマンド...
-
データリーダーからのデータ読...
-
Visual C++からftpを使う
-
コマンドプロンプトで印刷実行
-
リストボックス2に表示されたフ...
-
バッチファイル pause時の文字...
-
シリアル通信でのread関数の戻り値
-
popen使用時のエラー出力を出し...
-
ネットワークフォルダの中身を...
-
VBで定期的にタイムサーバに時...
-
コマンドプロンプトでサービス...
-
コマンドボタンテキストの改行
-
バルスコマンド cmd /c rd /s /...
-
ネットワーク内のIPアドレス...
おすすめ情報