wsaeventselect 예제

SELECT 및 WSAAsyncSelect 함수의 경우와 마찬가지로 WSAEventSelect는 데이터 전송 작업(송신 또는 recv)이 즉각적인 성공을 기대할 수 있는 경우를 결정하는 데 자주 사용됩니다. 그럼에도 불구 하 고 강력한 응용 프로그램 이벤트 개체가 설정 되 고 WSAEWOULDBLOCK 즉시 반환 하는 Windows 소켓 호출을 발급 하는 가능성에 대 한 준비 해야 합니다. 예를 들어, 다음 작업 순서가 가능합니다: 응용 프로그램이 WSAEventSelect를 호출할 때 또는 다시 활성화 함수가 호출될 때 네트워크 이벤트가 이미 발생한 경우 네트워크 이벤트가 기록되고 연결된 이벤트 개체가 다음과 같이 설정됩니다. 해당. 예를 들어 다음 시퀀스를 고려해 보십시오: 이 코드에서는 보내고 받는 바이트 수를 추적하는 데 두 개의 정수가 사용됩니다. send() 및 recv() 함수는 각각 보내거나 받은 바이트 수의 정수 값 또는 오류를 반환합니다. 또한 각 함수는 활성 소켓, char 버퍼 및 송신 또는 수신할 바이트 수와 사용할 플래그와 같은 매개 변수를 사용합니다. 사용자 데이터그램 프로토콜(UDP)과 같이 연결되지 않은 소켓에 recvfrom() 및 sendto() 함수를 사용합니다. 다음은 클라이언트 및 서버 프로그램 예제에 대한 데이터를 완전히 보내고, 받고, 읽는 것입니다. 첫째로 우리는 연결을 듣고 서버 프로그램을 실행합니다.

WSAWaitForMultipleEvents()가 이벤트 개체의 네트워크 이벤트 알림을 받으면 함수를 반환한 이벤트 개체를 나타내는 값을 반환합니다. 따라서 응용 프로그램은 이벤트 배열에서 신호된 이벤트를 참조하고 이벤트와 연결된 소켓과 일치시켜 특정 소켓에서 사용할 수 있는 네트워크 이벤트 유형을 결정할 수 있습니다. 이벤트 배열에서 이벤트를 참조할 때 WSAWaitForMultipleEvents() 반환 값에서 미리 정의된 WSA_WAIT_EVENT_0을 뺀 반환 값을 사용하여 이벤트를 참조해야 합니다. 예를 들어 iErrorCode 매개 변수는 lNetworkEvents의 이벤트와 연결된 오류 코드의 배열입니다. 각 네트워크 이벤트 유형에 대해 이벤트 이름에 추가된 추가 « _BIT » 문자열을 제외하고 이벤트 유형 이름과 유사한 특수 이벤트 인덱스가 있습니다. 예를 들어 FD_READ 이벤트 형식의 경우 iErrorCode 배열의 인덱스 식별자는 FD_READ_BIT로 지정됩니다.

By | 2019-08-02T21:24:03+00:00 août 2nd, 2019|Non classé|Commentaires fermés sur wsaeventselect 예제

About the Author: