티스토리 뷰
WSAEventSelect 는 스레드로 처리한다.
WSAAsyncSelect 는 클라이언트의 이벤트(FD_READ, FD_CLOSE 등) 에 대해 메시지를 보내지만
WSAEventSelect 는 클라이언트의 이벤트에 대해 함수를 호출한다.
스레드는 64개 까지만 가능하다.
1
2
3
4
5
6
7
8
9
10
11
|
wile(1) // 스레드
{
WSAEventSelect(SOCKET, h이벤트, FD_READ | FD_CLOSE)
WSAEnumNetworkEvents(sock, g_hEvent[n], &netEvt);
if(netEvt.lNetworkEvents & FD_ACCEPT)
OnAccept();
if(netEvt.lNetworkEvents & FD_READ)
OnRead(sock);
if(netEvt.lNetworkEvents & FD_CLOSE)
OnClose(n-2);
}
|
cs |
와 같이 클라이언트 연결 요청 이벤트가 발생하면 OnAccept() 호출하고
데이타를 보내면 onRead() 호출한다.