int WSAEventSelect(
__in SOCKET s,
__in WSAEVENT hEventObject,
__in long lNetworkEvents
);
s : 소켓 지정 번호
hEventObject : 이벤트 객체를 지시하는 핸들러
lNetworkEvent : 이벤트 객체를 신호 상태로 만들 이벤트 목록
반환 값
만약 소켓에 대해서 관찰할 이벤트 목록을 성공적으로 이벤트 객체와 묶어줬다면 0을 만환한다. 실패했다면 SOCKET_ERROR을 반환한다.
설명
이 함수는 다음과 같이 작동한다.
이벤트 객체와 묶은 소켓에 데이터가 도착하면, 이벤트 객체를 신호 상태로 만든다.
애플리케이션은 신호 상태의 이벤트 객체에서 어떤 소켓에 어떤 이벤트가 발생했는지 확인해서, 데이터를 처리한다.
WSAEventSelect 함수를 호출하면 소켓은 자동적으로 비 봉쇄 모드가 된다. 만약 ioctlsocket(:4100)이나 WSAIoctl(:4100)과 같은 함수로 봉쇄모드로 하지 않는다면, recv(:4100) 함수 반환시 WSAEWOULDBLOCK을 검사해서, 함수 에러인지 아니면 비 봉쇄에서 데이터가 준비되지 않아서 발생한 에러인지를 검사해야 한다. 견고한 애플리케이션을 만들기 원한다면 WSAEventSelect 함수 호출 후 소켓을 봉쇄로 만드는 방법을 고려해볼만 하다.
WSAEventSelect 함수는 lNetworkEvents 매개 변수로 이벤트 객체를 신호 상태로 만들기 위한 이벤트를 지정할 수 있다. 이벤트의 종류는 다음과 같다.
WSAEventSelect
사용 법
반환 값
설명
예제
Recent Posts
Archive Posts
Tags