Windows 소켓: 소켓 클래스에서 파생시키기
이 문서에서는 소켓 클래스 중 하나에서 고유한 클래스를 파생시켜 얻을 수 있는 몇 가지 기능에 대해 설명합니다.
CAsyncSocket 또는 CSocket에서 고유한 소켓 클래스를 파생하여 고유한 기능을 추가할 수 있습니다. 특히 이러한 클래스는 재정의할 수 있는 여러 가상 멤버 함수를 제공합니다. 이러한 함수에는 OnReceive, OnSend, OnAccept, On커넥트 및 OnClose가 포함됩니다. 파생 소켓 클래스의 함수를 재정의하여 네트워크 이벤트가 발생할 때 제공하는 알림을 활용할 수 있습니다. 프레임워크는 이러한 알림 콜백 함수를 호출하여 읽기를 시작할 수 있는 데이터 수신과 같은 중요한 소켓 이벤트를 알립니다. 알림 함수에 대한 자세한 내용은 Windows 소켓: 소켓 알림을 참조 하세요.
또한 클래스 CSocket
는 OnMessagePending 멤버 함수(고급 재정의 가능)를 제공합니다. MFC는 소켓이 Windows 기반 메시지를 펌핑하는 동안 이 함수를 호출합니다. Windows에서 특정 메시지를 찾아 응답하도록 재정 OnMessagePending
의할 수 있습니다.
클래스 CSocket
에서 제공된 기본 버전은 OnMessagePending
차단 호출이 완료될 때까지 기다리는 동안 메시지 큐에서 WM_PAINT 메시지를 검사합니다. 디스플레이 품질을 개선하기 위해 페인트 메시지를 디스패치합니다. 유용한 작업을 수행하는 것 외에도 함수를 직접 재정의할 수 있는 한 가지 방법을 보여 줍니다. 또 다른 예로 다음 작업에 사용하는 OnMessagePending
것이 좋습니다. 네트워크 트랜잭션이 완료 될 때까지 기다리는 동안 모덜리스 대화 상자를 표시한다고 가정해 보겠습니다. 대화 상자에는 사용자가 너무 오래 걸리는 차단 트랜잭션을 취소하는 데 사용할 수 있는 취소 단추가 포함되어 있습니다. 재정의는 OnMessagePending
이 모덜리스 대화 상자와 관련된 메시지를 펌핑할 수 있습니다.
OnMessagePending
재정의에서 기본 클래스 버전OnMessagePending
에 대한 호출에서 TRUE 또는 반환을 반환합니다. 여전히 원하는 작업을 수행하는 경우 기본 클래스 버전을 호출합니다.
자세한 내용은 다음을 참조하세요.