윈도우 소켓 사용시 WSAStartup() 함수를 호출해야 winsock.dll을 이용 가능하다.
사용시 유의점은 WSAStartup() 함수와 반드시 WSACleanup() 함수를 맞춰줘야 한다는 점이다.
예를 들어 WSAStartup()을 여러번 호출한다면 WSACleanup()도 여러번 호출하여야 한다.
An application must call the WSACleanup function for every successful time the WSAStartup function is called.
This means, for example, that if an application calls WSAStartup three times, it must call WSACleanup three times.
The first two calls to WSACleanup do nothing except decrement an internal counter; the final WSACleanup call for the task does all necessary resource deallocation for the task.
msdn 첫 문장 부터 어플리케이션은 wsastartup이 호출되어서 성공한 횟수만큼 wsacleanup이 호출되어야 한다. 라고 명시.
하지만, 잘 생각해 보면 WSAStartup()은 생성시 한번 호출하고, 해제시 한번 해제 하면 된다.
단지 windock.dll을 사용하겠다고 할당과 관련된 내용이므로
지속적이고 개수를 알수 없는대로 할당할때와는 따로 독립적으로 만들어야 한다.
(그러니까 발코딩 하지 말라고.)
참조 : msdn.microsoft.com/en-us/library/windows/desktop/ms742213%28v=vs.85%29.aspx
'[ Programing ] > Server' 카테고리의 다른 글
동기화와 비동기화 방식 (0) | 2013.11.03 |
---|---|
윈도우 소켓 SOCKET WSAAPI socket() 사용시 리턴 소켓 넘버 값 관련 (0) | 2013.10.25 |
하나의 포트에 Connection은 몇 개까지 붙을 수 있는가. (0) | 2013.09.11 |
IOCP에서 ERROR_NETNAME_DELETED 에러 메세지 (0) | 2013.09.11 |
UDP 홀펀칭2 (0) | 2013.08.22 |