Compartir a través de


Windows Sockets: Notificaciones de socket

En este artículo se describe las funciones de notificación en las clases de socket.Estas funciones miembro son funciones de devolución de llamada que el marco llama para notificar a su objeto de socket de eventos importantes.Las funciones de notificación son:

  • OnReceive: Notifica a este socket que hay datos en el búfer para que recupere llamando a Recibir.

  • OnSend: Notifica a este socket que ahora puede enviar datos llamando a send.

  • OnAccept: Notifica a este socket que escucha que acepte pendientes solicitudes de conexión llamando a Aceptar.

  • OnConnect: Notifica a este socket de conexión que el intento de conexión completa: quizás correctamente o quizás en error.

  • OnClose: Notifica a este socket que se ha cerrado el socket que está conectado con.

    [!NOTA]

    Una función adicional de notificación es OnOutOfBandData.Esta notificación indica a socket que recibe que el socket de envío tiene datos “fuera de banda” para enviar.Los datos fuera de banda es un canal lógicamente independiente asociado a cada par de sockets de secuencia conectados.El canal fuera de banda se utiliza normalmente para enviar datos “urgentes”.MFC admite datos fuera de banda.Los usuarios avanzados trabajando con la clase CAsyncSocket deban utilizar el canal fuera de banda, pero se recomienda encarecidamente no usar para los usuarios de la clase CSocket de utilizarla.La manera más fácil es crear un segundo socket para pasar tales datos.Para obtener más información sobre los datos fuera de banda, vea la especificación de Windows Sockets, disponible en Windows SDK.

Si deriva de la clase CAsyncSocket, debe reemplazar las funciones de notificación para esos eventos de red de interés a la aplicación.Si deriva una clase de la clase CSocket, es su opción si reemplazar las funciones de notificación de interés.También puede utilizar CSocket propio, en cuyo caso el valor predeterminado de las funciones de notificación a no hacer nada.

Estas funciones son funciones de devolución de llamada reemplazable.CAsyncSocket y CSocket convierten mensajes a las notificaciones, pero debe implementar cómo responden las funciones de notificación si desea utilizarlas.Las funciones de notificación se denominan cuando el socket se notifica de un evento de interés, como la presencia de datos que se va a leer.

MFC llama a las funciones de notificación para permitir personalizar el comportamiento del socket cuando se notifica.Por ejemplo, podría llamar a Receive de su función de notificación de OnReceive , es decir, en la notificación que hay datos a leer, se llama a Receive para leerlo.Este enfoque no es necesario, pero es un escenario válida.Como alternativa, puede utilizar la función de notificación para seguir el progreso, mensajes de traza de impresión, etc.

Puede utilizar estas notificaciones reemplazando las funciones de notificación en una clase derivada de socket y proporcionando una implementación.

Durante una operación como recibir o envío de datos, un objeto de CSocket se sincrónico.Durante el estado sincrónica, cualquier notificación lo que sucede para otros sockets se pone en cola mientras el socket actual espera la notificación que desea.(Por ejemplo, durante una llamada de Receive , el socket desea una notificación para leer.) Una vez que el socket completa la operación síncrona y se asincrónico de nuevo, otros sockets pueden iniciar recibir notificaciones en cola.

[!NOTA]

En CSocket, la función de notificación de OnConnect nunca se llama.Para las conexiones, se llama a Conectar, que cambiarán cuando se completa la conexión (correctamente o por error).Cómo se administran las notificaciones de conexión es un detalle de implementación de MFC.

Para obtener más información sobre cada función de notificación, vea la función bajo la clase CAsyncSocket en la referencia de MFC.Para el código fuente y la información sobre ejemplos de MFC, vea ejemplos de MFC.

Para obtener más información, vea:

Vea también

Conceptos

Windows Sockets en MFC