더북(TheBook)

lpWSAData는 윈도 전용 구조체로서, WSAStartup()이 활성화된 라이브러리에 대한 정보로 값을 채워준다. 여기에는 선택된 구현 버전 정보 등이 포함되는데 버전은 대개 요청한 그대로 선택되므로 이 데이터를 굳이 체크해 볼 필요는 없다.

WSAStartup()은 성공 시 0을 리턴하거나 아니면 에러 코드를 리턴한다. 에러 코드를 확인하면 초기화에 실패한 이유를 알 수 있다. WSAStartup() 호출이 실패한 경우 이후 대부분의 Winsock2 함수가 제대로 동작하지 않으니 유의하자.

라이브러리 사용을 종료하고 마무리하려면 WSACleanup() 함수를 호출한다.

int WSACleanup();

WSACleanup()에는 파라미터가 없고 리턴값은 에러 코드이다. 프로세스가 WSACleanup()을 호출하면 현재 진행 중이던 모든 소켓 동작이 강제 종료되고 소켓 리소스는 모두 소멸된다. 따라서 Winsock을 마무리할 때 모든 소켓이 닫혀있고 사용이 끝났는지 확실히 해 두는 것이 좋다. WSAStartup()은 레퍼런스 카운트되므로 WSAStartup()을 호출한 횟수만큼 WSACleanup()을 호출해야 실제 마무리 작업이 일어난다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.