InternetConnectA 함수(wininet.h)

지정된 사이트에 대한 FTP(파일 전송 프로토콜) 또는 HTTP 세션을 엽니다.

구문

HINTERNET InternetConnectA(
  [in] HINTERNET     hInternet,
  [in] LPCSTR        lpszServerName,
  [in] INTERNET_PORT nServerPort,
  [in] LPCSTR        lpszUserName,
  [in] LPCSTR        lpszPassword,
  [in] DWORD         dwService,
  [in] DWORD         dwFlags,
  [in] DWORD_PTR     dwContext
);

매개 변수

[in] hInternet

InternetOpen에 대한 이전 호출에서 반환된 핸들입니다.

[in] lpszServerName

인터넷 서버의 호스트 이름을 지정하는 null로 끝나는 문자열에 대한 포인터입니다. 또는 문자열에는 사이트의 IP 번호(ASCII 점선 10진수 형식)가 포함될 수 있습니다(예: 11.0.1.45).

[in] nServerPort

서버의 TCP/IP(전송 제어 프로토콜/인터넷 프로토콜) 포트입니다. 이러한 플래그는 사용되는 포트만 설정합니다. 서비스는 dwService 값으로 설정됩니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
INTERNET_DEFAULT_FTP_PORT
FTP 서버의 기본 포트(포트 21)를 사용합니다.
INTERNET_DEFAULT_GOPHER_PORT
Gopher 서버의 기본 포트(포트 70)를 사용합니다.
참고 Windows XP 및 Windows Server 2003 R2 및 이전 버전에만 해당합니다.
 
INTERNET_DEFAULT_HTTP_PORT
HTTP 서버의 기본 포트(포트 80)를 사용합니다.
INTERNET_DEFAULT_HTTPS_PORT
HTTPS(Secure Hypertext Transfer Protocol) 서버(포트 443)의 기본 포트를 사용합니다.
INTERNET_DEFAULT_SOCKS_PORT
SOCKS 방화벽 서버의 기본 포트(포트 1080)를 사용합니다.
INTERNET_INVALID_PORT_NUMBER
dwService에서 지정한 서비스의 기본 포트를 사용합니다.

[in] lpszUserName

로그온할 사용자의 이름을 지정하는 null로 끝나는 문자열에 대한 포인터입니다. 이 매개 변수가 NULL인 경우 함수는 적절한 기본값을 사용합니다. FTP 프로토콜의 경우 기본값은 "anonymous"입니다.

[in] lpszPassword

로그온하는 데 사용할 암호를 포함하는 null로 종료된 문자열에 대한 포인터입니다. lpszPasswordlpszUsername이 모두 NULL인 경우 함수는 기본 "익명" 암호를 사용합니다. FTP의 경우 기본 암호는 사용자의 전자 메일 이름입니다. lpszPasswordNULL이지만 lpszUsernameNULL이 아닌 경우 함수는 빈 암호를 사용합니다.

[in] dwService

액세스할 서비스 유형입니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
INTERNET_SERVICE_FTP
FTP 서비스.
INTERNET_SERVICE_GOPHER
Gopher 서비스.
참고 Windows XP 및 Windows Server 2003 R2 및 이전 버전에만 해당합니다.
 
INTERNET_SERVICE_HTTP
HTTP 서비스.

[in] dwFlags

사용된 서비스와 관련된 옵션입니다. 조건
dwService 는 INTERNET_SERVICE_FTP INTERNET_FLAG_PASSIVE 애플리케이션이 수동 FTP 의미 체계를 사용하도록 합니다.

[in] dwContext

콜백에서 반환된 핸들의 애플리케이션 컨텍스트를 식별하는 데 사용되는 애플리케이션 정의 값이 포함된 변수에 대한 포인터입니다.

반환 값

연결이 성공하면 세션에 유효한 핸들을 반환하고, 그렇지 않으면 NULL 을 반환합니다. 확장된 오류 정보를 검색하려면 GetLastError를 호출합니다. 또한 애플리케이션은 InternetGetLastResponseInfo 를 사용하여 서비스에 대한 액세스가 거부된 이유를 확인할 수 있습니다.

설명

다음 표에서는 lpszUsernamelpszPassword의 네 가지 가능한 설정에 대한 동작을 설명합니다.

lpszUsername lpszPassword FTP 서버로 전송된 사용자 이름 FTP 서버로 전송된 암호
NULL NULL "anonymous" 사용자의 전자 메일 이름
NULL이 아닌 문자열 NULL lpszUsername ""
NULL NULL이 아닌 문자열 오류 오류
NULL이 아닌 문자열 NULL이 아닌 문자열 lpszUsername lpszPassword
 

FTP 사이트의 경우 InternetConnect 는 실제로 서버와의 연결을 설정합니다. 다른 사용자의 경우 애플리케이션이 특정 트랜잭션을 요청할 때까지 실제 연결이 설정되지 않습니다.

효율성을 극대화하기 위해 HTTP 프로토콜을 사용하는 애플리케이션은 InternetConnect 에 대한 호출을 최소화하고 사용자가 요청한 모든 트랜잭션에 대해 이 함수를 호출하지 않도록 해야 합니다. 이 작업을 수행하는 한 가지 방법은 InternetConnect에서 반환된 작은 핸들 캐시를 유지하는 것입니다. 사용자가 이전에 액세스한 서버에 요청하면 해당 세션 핸들을 계속 사용할 수 있습니다.

InternetConnect에서 반환된 HINTERNET 핸들을 사용하여 호출 애플리케이션을 완료한 후에는 InternetCloseHandle 함수를 사용하여 닫혀야 합니다.

참고 요청이 비동기 모드로 전송되고(InternetOpendwFlags 매개 변수가 INTERNET_FLAG_ASYNC 지정함) dwContext 매개 변수가 0(INTERNET_NO_CALLBACK)인 경우 연결 핸들에서 InternetSetStatusCallback으로 설정된 콜백 함수는 호출되지 않습니다. 그러나 호출은 비동기 모드에서 계속 수행됩니다.

InternetConnect 사용의 예는 다음 topics 찾을 수 있습니다.

WinINet API의 다른 모든 측면과 마찬가지로 이 함수는 DllMain 내에서 또는 전역 개체의 생성자 및 소멸자에서 안전하게 호출할 수 없습니다.

참고 WinINet은 서버 구현을 지원하지 않습니다. 또한 서비스에서 사용하지 않아야 합니다. 서버 구현 또는 서비스의 경우 WinHTTP(Microsoft Windows HTTP 서비스)를 사용합니다.
 

참고

wininet.h 헤더는 INTERNETConnect를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 wininet.h
라이브러리 Wininet.lib
DLL Wininet.dll

추가 정보

인터넷 기능 사용

WinINet 함수