wsaasyncselect 예제

WSAWaitForMultipleEvents()가 이벤트 개체의 네트워크 이벤트 알림을 받으면 함수를 반환한 이벤트 개체를 나타내는 값을 반환합니다. 따라서 응용 프로그램은 이벤트 배열에서 신호된 이벤트를 참조하고 이벤트와 연결된 소켓과 일치시켜 특정 소켓에서 사용할 수 있는 네트워크 이벤트 유형을 결정할 수 있습니다. 이벤트 배열에서 이벤트를 참조할 때 WSAWaitForMultipleEvents() 반환 값에서 미리 정의된 WSA_WAIT_EVENT_0을 뺀 반환 값을 사용하여 이벤트를 참조해야 합니다. 예를 들어 preforking을 사용하는 더 복잡한 예입니다: 이 구현은 불필요하게 이해하기 어렵게 만들 수 있는 추가(종종 혼란스러운) 개념이기 때문에 코루틴에 의존하지 않습니다. 대신 차단되지 않은 소켓 클라이언트 개체(1마이크로초 동안 차단)의 테이블을 사용하여 각 개체에 에코할 줄이 있는지 또는 삭제를 보증하는 오류가 있는지 여부를 확인합니다. 라켓 웹 사이트의 첫 페이지에 있는 에코 서버 예: 다음 예제에서는 WSAAsyncSelect() 모델을 구현하는 서버를 보여 줍니다. iErrorCode 매개 변수는 lNetworkEvents의 이벤트와 연결된 오류 코드의 배열입니다. 각 네트워크 이벤트 유형에 대해 이벤트 이름에 추가된 추가 “_BIT” 문자열을 제외하고 이벤트 유형 이름과 유사한 특수 이벤트 인덱스가 있습니다. 예를 들어 FD_READ 이벤트 형식의 경우 iErrorCode 배열의 인덱스 식별자는 FD_READ_BIT로 지정됩니다. 다음 코드 조각은 FD_READ 이벤트에 대해 이를 보여 줍니다. Windows 그래픽 사용자 인터페이스에 DNS 서비스 검색을 올바르게 통합하려면 WinSock WSAAsyncSelect 함수를 사용합니다. WSAAsyncSelect 기능은 소켓 기반 네트워크 이벤트를 Windows 메시지 루프에 통합합니다.

Windows 코드에서 이 것을 사용하려면 먼저 DNSServiceRef 개체를 만들고 초기화해야 합니다. 그런 다음 WSAAsyncSelect 함수를 호출하여 DNSServiceRef 개체의 소켓을 Windows 메시지 루프와 연결합니다.

Ο ΚΑΙΡΟΣ
facebook
facebook
ΑΡΙΘΜΟΣ ΕΠΕΣΚΕΠΤΩΝ
  • 0Total visitors:
  • Visitors today:
  • Visitors yesterday:
  • Visitors last week:
  • Visitors per month:
  • 0.00Visitors per day:
  • 0Visitors currently online: