質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

FTP

FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

3167閲覧

FTPS通信を行うソースコード、もしくはライブラリかAPIを探しています。

qqfsdfsafd

総合スコア599

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

FTP

FTP(File Transfer Protocol)は、ネットワークでのファイル転送を行うための通信プロトコルの1つである。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2021/09/21 22:22

編集2021/09/29 04:54

FTPS通信を行うソースコード、もしくはライブラリかAPIを探しています。

GitHubより、ftplib.cppというソースコードを入手しましたが、#include <openssl/ssl.h>が無いと怒られました。

opensslもGitからcloneしましたが、ssl.hはssl.h.inというファイルになっていますし、opensslの使い方がサッパリわかりません。

なんかもっとサクッとFTPS通信が行える方法はないでしょうか?

追記
有料でも良いので、本当にサクッとFTPS通信が行えてC++で開発できるものを探しています。

追記
ターゲット環境はWindows,32bitです。クライアント側だけで良いです。

追記
VisualStudioです。

追記
libcurl もダウンロードしてみました。
たぶん真面目に解析すれば使えると思いますが、openssl の方がましだと思えるくらい複雑なので嫌になりました。

追記
やっぱり ftplib.cpp が使いやすそうなので、ftplib を使いたいのですが、openssl のヘッダーファイルが軒並み ...h.in という名前に変わっていて、エラーが出まくります。
どうしてこんなことになっているのでしょうか?

jbpb0さん
その内容はちゃんと回答欄に書いて下さい。
そこで編集されても気付かないので。

追記
curl を使ってみたところ「CURLE_URL_MALFORMAT」というエラーになって先に進めません。
なぜでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

int32_t

2021/09/21 23:34

ターゲット環境はなんですか?
退会済みユーザー

退会済みユーザー

2021/09/22 01:58

検索して見つかったライブラリ片っ端から試してみればいいのに。
qqfsdfsafd

2021/09/22 02:48

それがめんどくさいから経験者に的確なアドバイスを貰おうとしています。
SaitoAtsushi

2021/09/22 04:58

開発環境としては Visual Studio を使っているのですか?
jbpb0

2021/09/22 11:43 編集

https://github.com/embeddedmz/ftpclient-cpp の「About」の「Windows Users :」によると、「vcpkg」コマンドで「libcurl」が簡単にインストールできるようです 「Installation」の「Building under Windows via Visual Studio」の「1. New Procedure (with vcpkg) :」の最初のところに、手順が書かれてます なお、上記Webページは、「libcurl」をwrapしてるもので、「portable and easy-to-use API」と書かれてるので、「libcurl」を直接使うよりは簡単に使えるのではないですかね https://github.com/embeddedmz/ftpclient-cpp/blob/master/FTP/FTPClient.cpp の数ヶ所に「FTPS」と書かれてるので、「FTPS」もサポートしてるようですし https://github.com/embeddedmz/ftpclient-cpp の「Usage」のコード例の「// For SFTP : 」と書かれてる行の次の行の「CFTPClient::FTP_PROTOCOL::SFTP」の「SFTP」を「FTPS」と書き換えるといけるかも (未確認)
guest

回答1

0

ベストアンサー

C++ のプログラムは実行環境の都合に合わせて書き分けなければならない機会が多く、しかし書き分けても実際の実行環境に合わせて必要箇所を抜き出してコンパイルするというのは手間です。 そこでそういった作業を自動化する Autotools というツール群がよく使われていて、拡張子が .in のファイルは Autotools によって処理する前のファイルです。

Visual Studio には Autotools は含まれませんので処理するには別途 Autotools を導入する必要があり、しかし Autotools は色々なものに依存しているので (Windows に) 導入するのは面倒くさいです。

Windows 用に事前に処理してパッケージングしなおしたものが vcpkg のリポジトリに登録されていますので、こちらを使えばライブラリの導入に苦労することはないでしょう。 vcpkg を導入してコマンドを一行入力するだけです。

vcpkg のリポジトリにある中では curl は比較的使いやすいように思われます。

投稿2021/09/22 09:39

SaitoAtsushi

総合スコア5684

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

qqfsdfsafd

2021/09/22 09:52

vcpkg.info の中に openssl を見つけました。 これはいったいどうやって使うのでしょうか?
qqfsdfsafd

2021/09/22 09:58

curl でも良いですが、curl の中のどこにFTPS通信を行う関数があるのですか?
jbpb0

2021/09/24 22:23

質問者さん https://github.com/embeddedmz/ftpclient-cpp の「Installation」の「Building under Windows via Visual Studio」の「1. New Procedure (with vcpkg) :」の最初のところに、「vcpkg」コマンドで「libcurl」をインストールする手順が書かれてます 以下、使ったことないので紹介だけです 上記Webページの「FTP client for C++」は、「libcurl」をwrapしてるもので、「portable and easy-to-use API」と書かれてるので、「libcurl」を直接使うよりは簡単に使えるかもしれません https://github.com/embeddedmz/ftpclient-cpp/blob/master/FTP/FTPClient.cpp の数ヶ所に「FTPS」と書かれてるので、「FTPS」もサポートしてるようですし https://github.com/embeddedmz/ftpclient-cpp の「Usage」のコード例の「// For SFTP : 」と書かれてる行の次の行の「CFTPClient::FTP_PROTOCOL::SFTP」の「SFTP」を「FTPS」と書き換えるといけるかも (未確認) 以上、ご参考までに
qqfsdfsafd

2021/09/24 23:46

ビルドすると PSecPkgContext_IssuerListInfoEx が定義されていないと怒られました。 どういう意味でしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問