WSADATA 구조체(winsock2.h)
WSADATA 구조체에는 Windows 소켓 구현에 대한 정보가 포함되어 있습니다.
구문
typedef struct WSAData {
WORD wVersion;
WORD wHighVersion;
#if ...
unsigned short iMaxSockets;
#if ...
unsigned short iMaxUdpDg;
#if ...
char *lpVendorInfo;
#if ...
char szDescription[WSADESCRIPTION_LEN + 1];
#if ...
char szSystemStatus[WSASYS_STATUS_LEN + 1];
#else
char szDescription[WSADESCRIPTION_LEN + 1];
#endif
#else
char szSystemStatus[WSASYS_STATUS_LEN + 1];
#endif
#else
unsigned short iMaxSockets;
#endif
#else
unsigned short iMaxUdpDg;
#endif
#else
char *lpVendorInfo;
#endif
} WSADATA, *LPWSADATA;
멤버
wVersion
형식: WORD
Ws2_32.dll 호출자가 사용해야 하는 Windows 소켓 사양의 버전입니다. 상위 바이트는 부 버전 번호를 지정합니다. 하위 바이트는 주 버전 번호를 지정합니다.
wHighVersion
형식: WORD
Ws2_32.dll 지원할 수 있는 Windows 소켓 사양의 가장 높은 버전입니다. 상위 바이트는 부 버전 번호를 지정합니다. 하위 바이트는 주 버전 번호를 지정합니다.
WSAStartup 함수에 전달된 wVersionRequested 매개 변수에서 요청된 버전이 Ws2_32.dll 지원할 수 있는 Windows 소켓 사양의 가장 높은 버전인 경우 wVersion 멤버와 동일한 값입니다.
iMaxSockets
형식: 부호 없는 short
열 수 있는 최대 소켓 수입니다. Windows 소켓 버전 2 이상에서는 이 멤버를 무시해야 합니다.
iMaxSockets 멤버는 Windows 소켓 사양 1.1과의 호환성을 위해 유지되지만 새 애플리케이션을 개발할 때는 사용하지 않아야 합니다. 모든 기본 서비스 공급자에 적합한 단일 값은 없습니다. Windows 소켓의 아키텍처는 여러 공급자를 지원하도록 버전 2에서 변경되었으며 WSADATA 구조는 더 이상 단일 공급업체의 스택에 적용되지 않습니다.
iMaxUdpDg
형식: 부호 없는 short
최대 데이터그램 메시지 크기입니다. 이 멤버는 Windows 소켓 버전 2 이상에서 무시됩니다.
iMaxUdpDg 멤버는 Windows 소켓 사양 1.1과의 호환성을 위해 유지되지만 새 애플리케이션을 개발할 때는 사용하지 않아야 합니다. Windows 소켓의 아키텍처는 여러 공급자를 지원하도록 버전 2에서 변경되었으며 WSADATA 구조는 더 이상 단일 공급업체의 스택에 적용되지 않습니다. 특정 Windows 소켓 서비스 공급자 및 소켓 유형과 관련된 실제 최대 메시지 크기의 경우 애플리케이션은 getsockopt 를 사용하여 소켓을 만든 후 SO_MAX_MSG_SIZE 옵션 값을 검색해야 합니다.
lpVendorInfo
형식: char FAR*
공급업체별 정보에 대한 포인터입니다. Windows 소켓 버전 2 이상에서는 이 멤버를 무시해야 합니다.
lpVendorInfo 멤버는 Windows 소켓 사양 1.1과의 호환성을 위해 유지됩니다. Windows 소켓의 아키텍처는 여러 공급자를 지원하도록 버전 2에서 변경되었으며 WSADATA 구조는 더 이상 단일 공급업체의 스택에 적용되지 않습니다. 공급업체별 구성 정보에 액세스해야 하는 애플리케이션은 getsockopt 를 사용하여 공급업체별 정보에 대한 옵션 PVD_CONFIG 값을 검색해야 합니다.
szDescription[WSADESCRIPTION_LEN + 1]
형식: char[WSADESCRIPTION_LEN+1]
Ws2_32.dll Windows 소켓 구현에 대한 설명을 복사하는 NULL로 종료된 ASCII 문자열입니다. 텍스트(최대 256자 길이)는 컨트롤 및 서식 문자를 제외한 모든 문자를 포함할 수 있습니다. 애플리케이션이 이 멤버에 대해 가질 수 있는 가장 가능성이 높은 사용은 상태 메시지에 표시(잘릴 수 있음)하는 것입니다.
szSystemStatus[WSASYS_STATUS_LEN + 1]
형식: char[WSASYS_STATUS_LEN+1]
Ws2_32.dll관련 상태 또는 구성 정보를 복사하는 NULL로 종료된 ASCII 문자열입니다. Ws2_32.dll 정보가 사용자 또는 지원 직원에게 유용할 수 있는 경우에만 이 매개 변수를 사용해야 합니다. 이 멤버는 szDescription 매개 변수의 확장으로 간주해서는 안 됩니다.
설명
WSAStartup 함수는 프로세스별로 Windows 소켓 DLL 사용을 시작합니다. WSAStartup 함수는 에 대한 포인터를 반환합니다.
lpWSAData 매개 변수의 WSADATA 구조체입니다.
의 wHighVersion 멤버에 반환된 Windows 소켓 사양의 현재 버전
WSADATA 구조체는 하위 바이트의 주 버전 번호와 상위 바이트의 부 버전 번호로 인코딩된 버전 2.2입니다. 현재 Winsock DLL 버전인 Ws2_32.dll은 다음 버전의 Windows 소켓 사양을 요청하는 애플리케이션을 지원합니다.
- 1.0
- 1.1
- 2.0
- 2.1
- 2.2
예제
다음 예제에서는 WSADATA 구조체를 사용하는 방법을 보여 줍니다.
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 2, 2 );
err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
/* Tell the user that we could not find a usable */
/* WinSock DLL. */
return;
}
/* Confirm that the WinSock DLL supports 2.2.*/
/* Note that if the DLL supports versions greater */
/* than 2.2 in addition to 2.2, it will still return */
/* 2.2 in wVersion since that is the version we */
/* requested. */
if ( LOBYTE( wsaData.wVersion ) != 2 ||
HIBYTE( wsaData.wVersion ) != 2 ) {
/* Tell the user that we could not find a usable */
/* WinSock DLL. */
WSACleanup( );
return;
}
/* The WinSock DLL is acceptable. Proceed. */
요구 사항
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
머리글 | winsock2.h(Winsock2.h 포함) |