Partilhar via


Windows Sockets: notificações de soquete

Este artigo descreve as funções de notificação nas classes de soquete. Essas funções de membro são as funções de retorno de chamada que as chamadas da estrutura para notificar o objeto de soquete de eventos importantes. As funções de notificação são:

  • OnReceive: Notifica o soquete que há dados no buffer para que recupera chamando Recebe.

  • OnSend: Notifica o soquete que agora pode enviar dados chamando Envio.

  • OnAccept: Notifica o soquete escutando que pode aceitar durante solicitações de conexão chamando Aceitar.

  • OnConnect: Notifica o soquete conexão que a tentativa de conexão é concluído: talvez com êxito ou talvez em erro.

  • OnClose: Notifica o soquete que o soquete que é conectado a se desligar.

    Dica

    Uma função adicional de notificação é OnOutOfBandData.Essa notificação diz ao soquete pull que o soquete enviando tem dados “fora da banda” para enviar.Os dados fora da banda é um canal logicamente independente associadas a cada par de soquetes conectados de fluxo.O canal da banda normalmente é usado para enviar dados “urgentes”.MFC O oferece suporte a dados fora da banda.Usuários avançados que trabalham com a classe CAsyncSocket podem precisar usar o canal da banda, mas os usuários da classe CSocket são desanimados de usá-lo.É a forma mais fácil de criar um segundo soquete para transmitir os dados.Para obter mais informações sobre os dados fora da banda, consulte a especificação de soquetes do windows, disponível em Windows SDK.

Se você deriva da classe CAsyncSocket, você deve substituir as funções de notificação para os eventos de rede de interesse de seu aplicativo. Se você deve derivar uma classe da classe CSocket, é sua escolha se deseja substituir as funções de notificação de interesse. Você também pode usar CSocket próprio, caso em que as funções de notificação usam como padrão não fazer nada.

Essas funções são funções de retorno de chamada substituível. CAsyncSocket e CSocket convertem mensagens em notificações, mas você deve implementar como as funções de notificação respondem se você quiser usá-las. As funções de notificação são chamadas no soquete é notificado de um evento de interesse, como a presença de dados a serem lidos.

MFC O chama as funções de notificação para permitir a personalizar o comportamento do no soquete é notificado. Por exemplo, você pode chamar Receber de sua função de notificação de OnReceive , ou seja, na notificação que há dados para leitura, chame para ler Receber . Essa abordagem não é necessária, mas é um cenário válido. Como alternativa, você pode usar a função de notificação para rastrear o progresso, mensagens de RASTREAR de impressão, e assim por diante.

Você pode tirar proveito dessas notificações substituindo as funções de notificação em uma classe derivada de soquete e fornecendo uma implementação.

Durante uma operação como a recepção ou enviados de dados, um objeto de CSocket se torna síncrona. Durante o estado síncrono, todas as notificações feito para outros soquetes são enfileiradas quando o soquete atual aguardar notificação que deseja. (Por exemplo, durante uma chamada de Receber , o soquete desejar que uma notificação para ler.) Uma vez que o soquete conclui sua operação síncrona e se torna assíncrona novamente, outros soquetes podem começar a receber notificações em fila.

Dica

Em CSocket, a função de notificação de OnConnect nunca é chamada.Para conexões, chame Conectar, que retornará quando a conexão for concluída com êxito () ou em erro.Como as notificações de conexão são tratadas é um detalhes de implementação de MFC.

Para obter detalhes sobre cada função de notificação, consulte a função na classe CAsyncSocketna referência de MFC. Para o código-fonte e informações sobre exemplos de MFC, consulte MFC Exemplos.

Para obter mais informações, consulte:

Consulte também

Conceitos

Windows Sockets em MFC