Windows 소켓: 소켓 알림

이 문서에서는 소켓 클래스의 알림 함수에 대해 설명합니다. 이러한 멤버 함수는 프레임워크가 소켓 개체에 중요한 이벤트를 알리기 위해 호출하는 콜백 함수입니다. 알림 함수는 다음과 같습니다.

  • OnReceive: 수신을 호출하여 검색할 데이터가 버퍼에 있음을 이 소켓에 알깁니다.

  • OnSend: 이제 Send를 호출 하여 데이터를 보낼 수 있음을 이 소켓에 알깁니다.

  • OnAccept: Accept를 호출하여 보류 중인 연결 요청을 수락할 수 있음을 이 수신 대기 소켓에 알깁니다.

  • 켜기커넥트: 연결 시도가 완료되었음을 이 연결 소켓에 알깁니다. 아마도 성공적이거나 오류일 수 있습니다.

  • OnClose: 연결된 소켓이 닫혔다는 것을 이 소켓에 알깁니다.

    참고 항목

    추가 알림 함수는 OnOutOfBandData입니다. 이 알림은 송신 소켓에 보낼 "대역 외" 데이터가 있음을 수신 소켓에 알립니다. 대역 외 데이터는 연결된 각 스트림 소켓 쌍과 연결된 논리적으로 독립적인 채널입니다. 대역 외 채널은 일반적으로 "긴급" 데이터를 보내는 데 사용됩니다. MFC는 대역 외 데이터를 지원합니다. 클래스 CAsyncSocket으로 작업하는 고급 사용자는 대역 외 채널을 사용해야 할 수도 있지만 클래스 CSocket사용자는 사용하지 않는 것이 좋습니다. 더 쉬운 방법은 이러한 데이터를 전달하기 위한 두 번째 소켓을 만드는 것입니다. 대역 외 데이터에 대한 자세한 내용은 Windows SDK에서 사용할 수 있는 Windows 소켓 사양을 참조하세요.

클래스 CAsyncSocket에서 파생되는 경우 관심 있는 네트워크 이벤트에 대한 알림 함수를 애플리케이션에 재정의해야 합니다. 클래스 CSocket에서 클래스를 파생하는 경우 관심 있는 알림 함수를 재정의할지 여부를 선택할 수 있습니다. 자체도 사용할 CSocket 수 있습니다. 이 경우 알림 함수는 기본적으로 아무 작업도 수행하지 않습니다.

이러한 함수는 재정의 가능한 콜백 함수입니다. CAsyncSocket 메시지를 CSocket 알림으로 변환하지만, 메시지를 사용하려는 경우 알림 함수가 응답하는 방법을 구현해야 합니다. 알림 함수는 소켓에 읽을 데이터의 존재와 같은 관심 있는 이벤트에 대한 알림을 받을 때 호출됩니다.

MFC는 알림 함수를 호출하여 알림을 받을 때 소켓의 동작을 사용자 지정할 수 있도록 합니다. 예를 들어 알림 함수에서 OnReceive 호출 Receive 할 수 있습니다. 즉, 읽을 데이터가 있다는 알림을 받을 때 호출 Receive 하여 읽을 수 있습니다. 이 방법은 필요하지 않지만 유효한 시나리오입니다. 또는 알림 함수를 사용하여 진행 상황을 추적하고 TRACE 메시지를 인쇄하는 등의 작업을 수행할 수 있습니다.

파생 소켓 클래스의 알림 함수를 재정의하고 구현을 제공하여 이러한 알림을 활용할 수 있습니다.

데이터 수신 또는 전송과 같은 작업 중에는 개체가 CSocket 동기식이 됩니다. 동기 상태인 동안 현재 소켓이 원하는 알림을 기다리는 동안 다른 소켓에 대한 모든 알림이 큐에 대기됩니다. (예를 들어 통화 중에 Receive 소켓은 알림을 읽으려고 합니다.) 소켓이 동기 작업을 완료하고 다시 비동기 상태가 되면 다른 소켓이 대기 중인 알림 수신을 시작할 수 있습니다.

참고 항목

OnConnect 에서 CSocket알림 함수는 호출되지 않습니다. 연결의 경우 연결이 완료될 때 반환되는 호출 Connect입니다(성공 또는 오류). 연결 알림을 처리하는 방법은 MFC 구현 세부 정보입니다.

각 알림 함수에 대한 자세한 내용은 MFC 참조의 클래스 CAsyncSocket 아래에 있는 함수를 참조하세요. MFC 샘플에 대한 소스 코드 및 정보는 MFC 샘플을 참조 하세요.

자세한 내용은 다음을 참조하세요.

참고 항목

MFC의 Windows 소켓