Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article décrit certaines des fonctionnalités que vous pouvez obtenir en dérivant votre propre classe à partir de l’une des classes de socket.
Vous pouvez dériver vos propres classes de socket à partir de CAsyncSocket ou de CSocket pour ajouter vos propres fonctionnalités. En particulier, ces classes fournissent un certain nombre de fonctions membres virtuelles que vous pouvez remplacer. Ces fonctions incluent OnReceive, OnSend, OnAccept, OnConnect et OnClose. Vous pouvez remplacer les fonctions de votre classe de socket dérivée pour tirer parti des notifications qu’elles fournissent lorsque des événements réseau se produisent. Le framework appelle ces fonctions de rappel de notification pour vous notifier des événements de socket importants, tels que la réception de données que vous pouvez commencer à lire. Pour obtenir davantage d’informations sur les fonctions de notification, consultez Windows Sockets : notifications de socket.
En outre, la classe CSocket fournit la fonction membre OnMessagePending (substituable avancée). MFC appelle cette fonction pendant que le socket pompe les messages Windows. Vous pouvez remplacer OnMessagePending pour rechercher des messages particuliers à partir de Windows et y répondre.
La version OnMessagePending par défaut fournie dans la classe CSocket examine la file d’attente de messages pour les messages WM_PAINT pendant que l'on attend la fin d’un appel bloquant. Il distribue des messages de peinture pour améliorer la qualité de l’affichage. En plus de faire quelque chose d’utile, cela illustre une façon de remplacer la fonction vous-même. Comme autre exemple, envisagez d’utiliser OnMessagePending pour la tâche suivante. Supposons que vous affichiez une boîte de dialogue sans mode en attendant la fin d’une transaction réseau. La boîte de dialogue contient un bouton Annuler que l’utilisateur peut utiliser pour annuler les transactions bloquantes qui prennent trop de temps. Votre substitution OnMessagePending peut pomper des messages liés à cette boîte de dialogue sans mode.
Dans votre substitution OnMessagePending, retournez soit VRAI, soit le retour de l'appel à la version de la classe de base de OnMessagePending. Appelez la version de classe de base si elle effectue le travail que vous souhaitez toujours effectuer.
Pour plus d’informations, consultez :