Windows Sockets : dérivation des classes de sockets
Cet article décrit certaines fonctionnalités que vous pouvez obtenir en dérivant votre propre classe de l'une des classes de sockets layer).
Vous pouvez dériver vos propres classes de protocole de CAsyncSocket ou de CSocket pour ajouter votre propre fonctionnalité.En particulier, ces classes fournissent plusieurs fonctions membres virtuelles que vous pouvez substituer.Ces fonctions incluent OnReceive, OnSend, OnAccept, OnConnect, et OnClose.Vous pouvez substituer les fonctions dans votre classe de sockets dérivée pour tirer parti des notifications qu'elles fournissent lorsque les événements de réseau se produisent.L'infrastructure appelle ces fonctions de rappel de notification pour recevoir les événements importants de socket, tels que la réception de données que vous pouvez démarrer la lecture.Pour plus d'informations sur les fonctions de notification, consultez Windows Sockets : notifications de socket.
En outre, la classe CSocket fournit la fonction membre d'un OnMessagePending (substituable avancée).MFC appelle cette fonction pendant que le socket pompe de messages Windows.Vous pouvez substituer OnMessagePending pour rechercher les messages particuliers les fenêtres et pour leur répondre.
La version par défaut d' OnMessagePending l'a fourni dans la classe qu' CSocket examine la file d'attente de messages pour les messages d' WM_PAINT en attendant qu'un appel bloquant se termine.Il distribue les messages de peinture pour améliorer la qualité d'affichage.En plus de vous servir utile, cela illustre la façon dont vous pouvez substituer la fonction vous-même.Comme autre exemple, envisagez d'utiliser OnMessagePending pour la tâche suivante.Supposons que vous afficher une boîte de dialogue non modale en attendant qu'une transaction de réseau se termine.La boîte de dialogue contient un bouton Annuler que l'utilisateur peut utiliser pour annuler les transactions bloquantes qui prennent trop long.Votre substitution d' OnMessagePending peut pomper des messages liés à cette boîte de dialogue non modale.
Dans la substitution d' OnMessagePending , retournez TRUE ou le retour d'un appel à la version de classe de base d' OnMessagePending.Appelez la version de classe de base s'il exécute le travail que vous souhaitez toujours fait.
Pour plus d'informations, consultez :