윈도우 소켓을 이용하는 서비스의 종류에는 HTTP, FTP, GOPHER, TCP/IP 등의 프로토콜 서비스가 있다.
언급한 서비스 중 하나라도 사용을 원한다면, 윈도우 소켓을 사용할 수 있도록 초기화 작업을 해야한다.


윈도우 소켓을 초기화하는 함수로는 WSAStartup 함수 하나 밖에 없다. 
소켓 관련 함수를 사용하기 전에 가장 먼저 이 함수를 호출한다. 
WSAStartup 함수는 Ws2_32.dll 함수를 응용 프로그램의 영역으로 로드한다.
(#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;
Posted by cyj4369
,