SYSTEM PROGRAMMING

비동기 (Aynchronous ) Notificaton IO 모델의 이해와 구현

뉴암스테르담 2015. 8. 5. 21:37
비동기 (Aynchronous ) Notificaton IO 모델의 이해와 구현  시스템프로그래밍 

2013.04.04. 16:24  수정  삭제

복사http://blog.naver.com/pwk0810/40186302492

전용뷰어 보기

 

+ 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 함수 호출 이후의 이벤트 발생 확인 방법
  • 이벤트 발생이 확인된 경우, 발생된 이벤트의 유형을 확인하는 방법

 

 

댓글수0