Windows Sockets: Derivando de classes de soquete
Este artigo descreve algumas das funcionalidades que você pode obter derivando sua própria classe de uma das classes de soquete.
Você pode derivar suas próprias classes de soquete de qualquer um dos CAsyncSocket or CSocket para adicionar sua própria funcionalidade.Em particular, essas classes fornecem várias funções de membro virtual que você pode substituir.Essas funções incluem OnReceive, OnSend, OnAccept, AoConectar, and OnClose.Você pode substituir as funções na sua classe derivada de soquete para usufruir as notificações quando ocorrerem eventos de rede fornecem.A estrutura chama essas funções de retorno de chamada de notificação para notificá-lo de eventos de soquete importantes, sistema autônomo o recebimento de dados que você pode começar a leitura.Para obter mais informações sobre as funções de notificação, consulte Windows Sockets: Soquete notificações.
Além disso, classe CSocket Fornece o OnMessagePendingfunção de membro (um avançado substituível).MFC chama esta função, enquanto o soquete é bombeando mensagens baseadas no baseado no Windows.Você pode substituir OnMessagePending para procurar mensagens específicas do Windows e responder a elas.
A versão padrão de OnMessagePending fornecido em classe CSocket examina a fila de mensagens para WM_PAINT mensagens ao aguardar uma telefonar de bloqueio concluir. Ele envia mensagens de pintura para melhorar a qualidade do vídeo.Além de fazer algo útil, isso por conta própria ilustra uma maneira podem substituir a função.sistema autônomo outro exemplo, considere o uso de OnMessagePending para a tarefa a seguir. Suponha que você exiba uma caixa de diálogo sem janela restrita ao aguardar uma transação de rede concluir.A caixa de diálogo contém um botão de cancelar o usuário pode usar para cancelar a transações de bloqueio muito demoram.O OnMessagePending substituir talvez bomba mensagens relacionadas a esta caixa de diálogo sem janela restrita.
No seu OnMessagePending Substituir, volte TRUE ou o retorno de uma telefonar para a versão de classe base da OnMessagePending. Chame a versão de classe base se ele executa o trabalho ainda ser concluído.
Para obter mais informações, consulte: