InternetConnectW 함수(wininet.h)
지정된 사이트에 대한 FTP(파일 전송 프로토콜) 또는 HTTP 세션을 엽니다.
구문
HINTERNET InternetConnectW(
[in] HINTERNET hInternet,
[in] LPCWSTR lpszServerName,
[in] INTERNET_PORT nServerPort,
[in] LPCWSTR lpszUserName,
[in] LPCWSTR lpszPassword,
[in] DWORD dwService,
[in] DWORD dwFlags,
[in] DWORD_PTR dwContext
);
매개 변수
[in] hInternet
InternetOpen에 대한 이전 호출에서 반환된 핸들입니다.
[in] lpszServerName
인터넷 서버의 호스트 이름을 지정하는 null로 끝나는 문자열에 대한 포인터입니다. 또는 문자열은 사이트의 IP 번호를 ASCII 점선 소수점 형식(예: 11.0.1.45)으로 포함할 수 있습니다.
[in] nServerPort
서버의 TCP/IP(Transmission Control Protocol/Internet Protocol) 포트입니다. 이러한 플래그는 사용되는 포트만 설정합니다. 서비스는 dwService 값으로 설정됩니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.
값 | 의미 |
---|---|
|
FTP 서버의 기본 포트(포트 21)를 사용합니다. |
|
Gopher 서버의 기본 포트(포트 70)를 사용합니다. 참고 Windows XP 및 Windows Server 2003 R2 및 이전 버전만.
|
|
HTTP 서버의 기본 포트(포트 80)를 사용합니다. |
|
보안 HTTPS(Hypertext Transfer Protocol) 서버(포트 443)의 기본 포트를 사용합니다. |
|
SOCKS 방화벽 서버의 기본 포트(포트 1080)를 사용합니다. |
|
dwService에서 지정한 서비스의 기본 포트를 사용합니다. |
[in] lpszUserName
로그온할 사용자의 이름을 지정하는 null로 끝나는 문자열에 대한 포인터입니다. 이 매개 변수가 NULL인 경우 함수는 적절한 기본값을 사용합니다. FTP 프로토콜의 경우 기본값은 "익명"입니다.
[in] lpszPassword
로그온하는 데 사용할 암호를 포함하는 null로 끝나는 문자열에 대한 포인터입니다. lpszPassword와 lpszUsername이 모두 NULL인 경우 함수는 기본 "익명" 암호를 사용합니다. FTP의 경우 기본 암호는 사용자의 전자 메일 이름입니다. lpszPassword가 NULL이지만 lpszUsername이 NULL이 아닌 경우 함수는 빈 암호를 사용합니다.
[in] dwService
액세스할 서비스 유형입니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.
값 | 의미 |
---|---|
|
FTP 서비스. |
|
Gopher 서비스. 참고 Windows XP 및 Windows Server 2003 R2 및 이전 버전만.
|
|
HTTP 서비스. |
[in] dwFlags
사용되는 서비스와 관련된 옵션입니다. 조건
dwService 는 INTERNET_SERVICE_FTP INTERNET_FLAG_PASSIVE 애플리케이션이 수동 FTP 의미 체계를 사용하도록 합니다.
[in] dwContext
콜백에서 반환된 핸들의 애플리케이션 컨텍스트를 식별하는 데 사용되는 애플리케이션 정의 값을 포함하는 변수에 대한 포인터입니다.
반환 값
연결에 성공하면 세션에 유효한 핸들을 반환하고, 그렇지 않으면 NULL 을 반환합니다. 확장된 오류 정보를 검색하려면 GetLastError를 호출합니다. 애플리케이션은 InternetGetLastResponseInfo 를 사용하여 서비스에 대한 액세스가 거부된 이유를 확인할 수도 있습니다.
설명
다음 표에서는 lpszUsername 및 lpszPassword의 네 가지 가능한 설정에 대한 동작을 설명합니다.
lpszUsername | lpszPassword | FTP 서버로 전송된 사용자 이름 | FTP 서버로 보낸 암호 |
---|---|---|---|
NULL | NULL | "anonymous" | 사용자의 전자 메일 이름 |
NULL이 아닌 문자열 | NULL | lpszUsername | "" |
NULL | NULL이 아닌 문자열 | 오류 | 오류 |
NULL이 아닌 문자열 | NULL이 아닌 문자열 | lpszUsername | lpszPassword |
FTP 사이트의 경우 InternetConnect 는 실제로 서버와의 연결을 설정합니다. 다른 사용자의 경우 애플리케이션이 특정 트랜잭션을 요청할 때까지 실제 연결이 설정되지 않습니다.
효율성을 극대화하기 위해 HTTP 프로토콜을 사용하는 애플리케이션은 InternetConnect 호출을 최소화하고 사용자가 요청한 모든 트랜잭션에 대해 이 함수를 호출하지 않도록 해야 합니다. 이 작업을 수행하는 한 가지 방법은 InternetConnect에서 반환된 작은 핸들 캐시를 유지하는 것입니다. 사용자가 이전에 액세스한 서버에 요청하면 해당 세션 핸들을 계속 사용할 수 있습니다.
InternetConnect에서 반환된 HINTERNET 핸들을 사용하여 호출 애플리케이션을 완료한 후에는 InternetCloseHandle 함수를 사용하여 닫아야 합니다.
참고 요청이 비동기 모드로 전송되고(InternetOpen의 dwFlags 매개 변수가 INTERNET_FLAG_ASYNC 지정함) dwContext 매개 변수가 0(INTERNET_NO_CALLBACK)인 경우 연결 핸들에서 InternetSetStatusCallback으로 설정된 콜백 함수는 호출되지 않습니다. 그러나 호출은 비동기 모드에서 계속 수행됩니다.
InternetConnect 사용의 예는 다음 topics 찾을 수 있습니다.
WinINet API의 다른 모든 측면과 마찬가지로 이 함수는 DllMain 내에서 또는 전역 개체의 생성자 및 소멸자에서 안전하게 호출할 수 없습니다.
참고
wininet.h 헤더는 UNICODE 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 InternetConnect를 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | wininet.h |
라이브러리 | Wininet.lib |
DLL | Wininet.dll |