InternetConnect インターネット上のサーバへの接続

Cの宣言:

HINTERNET InternetConnect(
	IN HINTERNET hInternet,
	IN LPCTSTR ServerName,
	IN INTERNET_PORT Port,
	IN LPCTSTR UserName OPTIONAL,
	IN LPCTSTR Password OPTIONAL,
	IN DWORD Service,
	IN DWORD Flags,
	IN DWORD Context);

説明:

ServerNameで指定されたインターネット上のサーバに接続し、ハンドルを返す。

引数の意味は以下の通り。
hInternet InternetOpenで返されたハンドル。
ServerName 接続先のホスト名またはドット表記のIPアドレス。
Port 接続するTCP/IPポート。既定の値については後述の表を参照。また、0を指定した場合、デフォルトのポートが使用される。
UserName 接続の際に使用されるユーザ名。HTTP以外の場合は、NULLを指定した場合デフォルト(FTPなら"anonymous")が使用される。
Password 接続の際に使用されるパスワード。FTPでUserNameとPasswordが共にNULLの場合、Passwordはe-mailアドレスが使用される。
Service アクセスするサービスのタイプ。後述の表を参照。
Flags サービス固有のフラグ値。後述の表を参照。
Context コールバック関数に渡されるアプリケーション定義の32bit値。

Portに指定可能なポートの内以下のものが既定のポートとして定められている。
INTERNET_DEFAULT_FTP_PORT FTP
INTERNET_DEFAULT_GOPHER_PORT Gopher
INTERNET_DEFAULT_HTTP_PORT HTTP
INTERNET_DEFAULT_HTTPS_PORT HTTPS

Serviceに指定可能な値は以下のフラグのいずれかである。
INTERNET_SERVICE_FTP FTP
INTERNET_SERVICE_GOPHER Gopher
INTERNET_SERVICE_HTTP HTTP

ServiceがINTERNET_SERVICE_FTPの場合、Flagsには以下のいずれかの値が指定可能。
INTERNET_CONNECT_FLAG_PASSIVE パッシブモードで接続する。

戻り値は、確立された接続を識別するハンドルである。関数の実行に失敗した場合、NULLが返される。

Cのサンプル:

“ftp.foo.bar”というFTPサイトにログインし、“pub/Misc/”というディレクトリにあるファイルの一覧を表示する。
void EnumFtpFiles()
{
	HINTERNET hInternet;
	HINTERNET hFtpSession;
	HINTERNET hFind;
	WIN32_FIND_DATA fd;

	/* WININETの初期化 */
	hInternet = InternetOpen(
		"WININET Sample Program",
		INTERNET_OPEN_TYPE_DIRECT,
		NULL,
		NULL,
		0);
	
	/* ftp.foo.barへ接続 */
	hFtpSession = InternetConnect(
		hInternet,
		"ftp.foo.bar",
		INTERNET_DEFAULT_FTP_PORT,
		NULL,
		NULL,
		INTERNET_SERVICE_FTP,
		0,
		0);

	/* ファイルを列挙し、表示 */
	hFind = FtpFindFirstFile(hFtpSession, "pub/Misc/", &fd, 0, 0);
	
	if(hFind != NULL) do {
		printf("%s\n", fd.cFileName);
	} while(InternetFindNextFile(hFind, &fd));

	/* 後処理 */
	InternetCloseHandle(hFind);
	InternetCloseHandle(hFtpSession);
	InternetCloseHandle(hInternet);
}

(original text:1999/04/15 更新)

本ドキュメントの内容は保証しません。本ドキュメントによって生じた結果について、一切の責任を負いません。