Windows Sockets: Soquete notificações
Este artigo descreve as funções de notificação em classes de soquete.Essas funções de membro são funções de retorno de chamada que chama a estrutura para notificar o objeto de soquete de eventos importantes.As funções de notificação são:
OnReceive: notifica neste soquete que há dados no buffer para ele recuperar chamando receber.
OnSend: notifica neste soquete que agora ele pode enviar dados chamando Enviar.
OnAccept: notifica neste soquete de escuta que podem aceitar solicitações de conexão pendentes chamando Aceitar.
OnConnect: notifica neste soquete de conexão que sua tentativa de conexão concluída: talvez com êxito ou talvez em erro.
AoFechar: notifica neste soquete que fechou o soquete está conectado a.
Observação É uma função de notificação adicionais OnOutOfBandData.Essa notificação diz ao soquete de recebimento que o soquete envio tem dados de "out-of-band" para enviar.Dados fora de banda serão um canal logicamente independente associado a cada par de soquetes de fluxo conectado.O canal de fora de banda geralmente é usado para enviar dados "urgentes".MFC oferece suporte a dados fora de banda.Trabalhando com a classe de usuários avançados CAsyncSocket talvez precise usar o canal de fora de banda, mas os usuários da classe CSocket são desencorajado de usá-lo.A maneira mais fácil é criar um soquete segundo para passar esses dados.Para obter mais informações sobre dados fora de banda, consulte a especificação de Windows Sockets, disponível na Windows SDK.
Se você derivar da classe CAsyncSocket, você deve substituir as funções de notificação para os eventos de interesse para seu aplicativo de rede.Se você 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 , caso em que a notificação funções padrão sem fazer nada.
Essas são funções de retorno de chamada substituíveis.CAsyncSockete CSocket converter mensagens para notificações, mas você deve implementar a notificação funcionamento responder se você desejar usá-los.As funções de notificação são chamadas no momento em que o soquete é notificado de um evento de interesse, como a presença de dados a serem lidos.
MFC chama as funções de notificação para permitir que você personalize o comportamento do soquete no momento que é notificado.Por exemplo, você pode chamar receber do seu OnReceive função de notificação, ou seja, em que está sendo notificado que há dados para ler, você chamar receber lê-la.Essa abordagem não é necessária, mas é um cenário válido.Como alternativa, você pode usar a função de notificação para acompanhar o progresso, imprimir rastreamento mensagens e assim por diante.
Você pode aproveitar essas notificações substituindo as funções de notificação em uma classe derivada soquete e fornecendo uma implementação.
Durante uma operação, como recebimento ou envio de dados, um CSocket o objeto se torna síncrono.Durante o estado síncrono, notificações destinadas a outros soquetes são enfileiradas enquanto aguarda o soquete atual para a notificação que quiser.(Por exemplo, durante um receber chamada, o soquete quer uma notificação de leitura.) Após o soquete concluirá a operação síncrona e se torna assíncrono novamente, outros soquetes podem começar a receber notificações na fila.
Observação |
---|
Em CSocket, o OnConnect nunca é chamada de função de notificação.Conexões, chamada Conectar, que irá retornar quando a conexão é concluída (com êxito ou erro).Como são tratadas as notificações de conexão é um detalhe de implementação do MFC. |
Para obter detalhes sobre cada função de notificação, consulte a função de classe CAsyncSocket na Referência MFC.Para código-fonte e informações sobre MFC exemplos, consulte Amostras de MFC.
Para obter mais informações, consulte: