「Win32/64ネットワーク開発 003 wininetを使ったftp通信」の版間の差分
(→概要) |
(→概要) |
||
16行目: | 16行目: | ||
HINTERNET HINTERNEThost = InternetConnect( | HINTERNET HINTERNEThost = InternetConnect( | ||
HINTERNETinet, | HINTERNETinet, | ||
L"ftp.xxxx.com", INTERNET_DEFAULT_FTP_PORT, | L"ftp.xxxx.com", INTERNET_DEFAULT_FTP_PORT, | ||
L"ftp_user_name", L"ftp_user_password", | L"ftp_user_name", L"ftp_user_password", | ||
INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0); | INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0); | ||
28行目: | 28行目: | ||
上記のプログラムにより、pwchCurrentDirにFTP接続したときの現在のディレクトリを取得できます。 | 上記のプログラムにより、pwchCurrentDirにFTP接続したときの現在のディレクトリを取得できます。 | ||
[[Win32/64ネットワーク開発_002_wininetを使ったhttp通信#InternetOpen|InternetOpen]]関数についての説明はコチラのリンクから確認して下さい。FTP通信をするときはホスト名やログイン名を使うので第2引数のフラグはINTERNET_OPEN_TYPE_DIRECTを指定します。 | |||
2023年11月14日 (火) 17:41時点における版
前の記事:Win32/64ネットワーク開発 002 wininetを使ったhttp通信
次の記事:[[Win32/64ネットワーク開発 004]]
概要
wininet.Libやwininet.hのインクルードについては前の記事の通り、同じように設定する必要があります。
まずは、ホスト名やユーザID、パスワード、接続時に最初に表示するディレクトリ名を聞いてくるようなインタフェースを持たない固定値での接続を試してみましょう。接続して、FTPでカレントディレクトリを設定してカレントディレクトリが今何かを返してくれるとこまでのプログラムを書いてみます。以下のとおりです。
HINTERNET HINTERNETinet = InternetOpen(L"yo-net.jp ftp", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
HINTERNET HINTERNEThost = InternetConnect(
HINTERNETinet,
L"ftp.xxxx.com", INTERNET_DEFAULT_FTP_PORT,
L"ftp_user_name", L"ftp_user_password",
INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);
FtpSetCurrentDirectory(HINTERNEThost, L"/");
DWORD DWORDsize = 0;
FtpGetCurrentDirectory(HINTERNEThost, NULL, &DWORDsize);
wchar_t* pwchCurrentDir = new wchar_t[DWORDsize/sizeof(wchar_t)];
FtpGetCurrentDirectory(HINTERNEThost, pwchCurrentDir, &DWORDsize);
上記のプログラムにより、pwchCurrentDirにFTP接続したときの現在のディレクトリを取得できます。
InternetOpen関数についての説明はコチラのリンクから確認して下さい。FTP通信をするときはホスト名やログイン名を使うので第2引数のフラグはINTERNET_OPEN_TYPE_DIRECTを指定します。
前の記事:Win32/64ネットワーク開発 002 wininetを使ったhttp通信
次の記事:[[Win32/64ネットワーク開発 004]]