윈도우 소켓을 이용하는 서비스의 종류에는 HTTP, FTP, GOPHER, TCP/IP 등의 프로토콜 서비스가 있다.
언급한 서비스 중 하나라도 사용을 원한다면, 윈도우 소켓을 사용할 수 있도록 초기화 작업을 해야한다.
윈도우 소켓을 초기화하는 함수로는 WSAStartup 함수 하나 밖에 없다.
소켓 관련 함수를 사용하기 전에 가장 먼저 이 함수를 호출한다.
WSAStartup 함수는 Ws2_32.dll 함수를 응용 프로그램의 영역으로 로드한다.
(#pragma comment(lib, "ws2_32.lib") 필요...)
(#pragma comment(lib, "ws2_32.lib") 필요...)
더불어 로드한 dll 파일로부터 사용할 수 있는 윈도우 소켓의 최상위 버전을 알아내거나 어떤 버전의 소켓을 사용할 것인지
알려주는 역할도 함께한다.
WSAStartup 함수의 호출이 실패할 경우, 윈도우 소켓을 반드시 사용해야 하는 프로그램이라면 어쩔 수 없이 프로그램을 종료해야 한다.
아니면, 지원되지 않는 버전을 사용하겠다고 요청했다면, 하위 버전으로 호출이 성공할 때까지 계속적으로 시도할 수 있다.
그러나, 이 함수는 기본적으로 Ws2_32.dll 파일을 사용하기 때문에, Ws2_32.dll 파일은 반드시 존재해야 한다.
WSADATA 구조체 변수는 WSAStartup 함수가 반환하는 윈도우 소켓의 세부 정보의 저장에 사용된다.
사용예>
WSADATA wsaData;
if(WSAStartup(MAKEWORD(2,2),&wsaData)!=0)
return -1;
'Development > C/C++' 카테고리의 다른 글
[문자열 함수(strcpy, strcat, strcmp strset, strlen, strupr, strchr등)] (0) | 2011.11.02 |
---|---|
[메모리 관리 함수(memset, memcpy, memmove)] (0) | 2011.11.02 |
[난수 함수(rand, srand)] (0) | 2011.11.02 |
[네트워크 주소를 저장하는 hostent 구조체] (0) | 2011.10.23 |
[윈도우 소켓 리소스 반환 함수 WSACleanup] (0) | 2011.10.23 |