SYSTEM PROGRAMMING
비동기 (Aynchronous ) Notificaton IO 모델의 이해와 구현
뉴암스테르담
2015. 8. 5. 21:37
비동기 (Aynchronous ) Notificaton IO 모델의 이해와 구현 ![]() ![]()
|
+ WSAEventSelect 함수를 사용하는 방법과 WSAAanchSelect 함수를 사용하는 방법이다.
- 리눅스에서는 EPOLL - fcntl(fd, F_SETFL, flag | O_NONBLOCK ) 으로 구현
+WSAEventSelect함수와 Notification
- 소켓의 상태 변화
- 소켓에 대한 IO의 상태 변화
- 소켓의 이벤트 발생 소켓에 대한 IO관련 이벤트의 발생
- 임의의 소켓을 대상으로 이벤트 발생 여부의 관찰을 명령할때 사용하는 함수
int WSAEventSelect(SOCKET s, WSAEVENT hEventObject , long lNetworkEvents);
- s
- 관찰 대상 소켓 전달
- hEventObject
- 이벤트 발생 유무의 확인을 위한 Event 오브젝트 핸들의 전달
- lNetworksEvent
- 감시하고자 하는 이벤트의 유형 정보 전달
- 매개 변수 s 에 전달된 핸들의 소켓에서 lNetworkEvents 에 전달된 이벤트 중 하나가 발생하면, hEventObject 에 전달된 핸들의 커널 오브젝트를 signaled 상태로 바꾸는 함수.
- 이벤트 오브젝트와 소켓을 연겨하는 함수
- 이벤트의 발생 유무에 상관없이 바로 반환을 하는 함수이기 때문에 함수 호출 이후에 다른 작업을 진행할 수 있다는 점이다.
- WSAEventSelect 함수의 두번째 인자 전달을 위한 Event 오브젝트의 생성 방법
- WSAEventSelect 함수 호출 이후의 이벤트 발생 확인 방법
- 이벤트 발생이 확인된 경우, 발생된 이벤트의 유형을 확인하는 방법