Win32/64ネットワーク開発 003 wininetを使ったftp通信

提供:yonewiki
2023年11月9日 (木) 00:02時点におけるYo-net (トーク | 投稿記録)による版

Win32/64 ネットワーク処理開発へ戻る。

前の記事:Win32/64ネットワーク開発 002 wininetを使ったhttp通信

次の記事:[[Win32/64ネットワーク開発 004]]

概要

 wininet.Libやwininet.hのインクルードについては前の記事の通り、同じように設定する必要があります。


 まずは、ホスト名やユーザID、パスワード、接続時に最初に表示するディレクトリ名を聞いてくるようなインタフェースを持たない固定値での接続を試してみましょう。接続して、FTPでカレントディレクトリを設定してカレントディレクトリが今何かを返してくれるとこまでのプログラムを書いてみます。以下のとおりです。


INETHANDLE g_INETHANDLEinet.hInternet = InternetOpen(L"yo-net.jp ftp", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
INETHANDLE* pINETHANDLEinet->hHost = InternetConnect(
    g_INETHANDLEinet.hInternet,
	L"ftp.xxxx.com",	INTERNET_DEFAULT_FTP_PORT,
	L"ftp_user_name", L"ftp_user_password",
	INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0); 
FtpSetCurrentDirectory(g_INETHANDLEinet.hHost, L"/");
DWORD DWORDsize = 0;
FtpGetCurrentDirectory(g_INETHANDLEinet.hHost, NULL, &DWORDsize);
wchar_t* pwchCurrentDir = new wchar_t[DWORDsize/sizeof(wchar_t)];
FtpGetCurrentDirectory(g_INETHANDLEinet.hHost, pwchCurrentDir, &DWORDsize);


 上記のプログラムにより、pwchCurrentDirにFTP接続したときの現在のディレクトリを取得できます。

 

前の記事:Win32/64ネットワーク開発 002 wininetを使ったhttp通信

次の記事:[[Win32/64ネットワーク開発 004]]

Win32/64 ネットワーク処理開発へ戻る。