Windows Sockets : notifications de socket
Cet article décrit les fonctions de notification dans les classes de sockets layer).Ces fonctions membres sont des fonctions de rappel que l'infrastructure appelle pour informer votre objet socket les événements importants.Les fonctions de notification sont :
OnReceive: Informe ce socket qu'il existe des données dans la mémoire tampon pour qu'il extraie en appelant Receive.
OnSend: informe ce socket qu'il peut maintenant envoyer des données en appelant Envoyez.
OnAccept: Informe ce socket écoutant qu'il peut recevoir en attente des demandes de connexion en appelant Acceptez.
OnConnect: Informe ce socket la connexion que sa tentative de connexion est terminée : peut-être correctement ou peut-être dans l'erreur.
OnClose: Informe ce socket que le socket qu'il est connecté à par fermé.
[!REMARQUE]
Une fonction de notification supplémentaire est OnOutOfBandData.Cette notification indique au socket l'autre que le socket d'émission a des données « hors plage » à l'envoyer.Les données hors bande sont des voie-par-voie logiquement indépendant à chaque paire de sockets flux connectés.Le canal hors plage est généralement utilisé pour envoyer des données « urgentes ».Données hors bande MFC prend en charge.Les utilisateurs expérimentés utiliser une classe CAsyncSocket peuvent devoir utiliser le canal hors plage, mais les utilisateurs de la classe CSocket sont découragés de l'utiliser.La façon la plus simple consiste à créer un deuxième socket pour passer de telles données.Pour plus d'informations sur les données hors bande, consultez la spécification Windows Sockets, disponible dans Kit de développement logiciel Windows.
Si vous dérivez de la classe CAsyncSocket, vous devez substituer les fonctions de notification pour ces événements du réseau d'intérêt à votre application.Si vous dérivez une classe de la classe CSocket, il s'agit de votre choix si substituer les fonctions de notification d'intérêt.Vous pouvez également utiliser CSocket lui-même, auquel cas les fonctions de notification ont comme valeur par défaut à ne rien.
Ces fonctions sont des fonctions de rappel substituables.CAsyncSocket et CSocket convertissent des messages aux notifications, mais vous devez implémenter comment les fonctions de notification répondent si vous souhaitez les utiliser.Les fonctions de notification sont appelées lorsque votre socket est averti d'un événement d'intérêt, tel que la présence de données.
MFC appelle les fonctions de notification pour vous permettre de personnaliser le comportement de votre socket lorsqu'il l'annonce.Par exemple, vous pouvez appeler Receive de la fonction de notification d' OnReceive , c. autrement dit., à la notification qu'il existe des données à lire, vous faites appel Receive pour lire.Cette méthode n'est pas nécessaire, mais il s'agit d'un scénario valide.Autrement, vous pouvez utiliser la fonction de notification pour suivre la progression, messages de TRACE d'impression, et ainsi de suite.
Vous pouvez tirer parti de ces notifications en substituant les fonctions de notification dans une classe de sockets dérivée et en fournissant une implémentation.
Pendant une opération telle que accepter ou envoyer des données, un objet d' CSocket devient synchrone.Pendant l'état synchrone, toutes les notifications signifiées pour d'autres douilles sont mises en file d'attente pendant que le socket actuelle attend la notification qu'il souhaite.(Par exemple, lors d'un appel de Receive , le socket souhaite une notification pour indiquer.) Une fois que le socket a terminé son exécution devient synchrone et asynchrone de nouveau, d'autres douilles peuvent démarrer réception des notifications en file d'attente.
[!REMARQUE]
Dans CSocket, la fonction de notification d' OnConnect n'est jamais appelée.Pour les connexions, vous appelez Se connecter, qui retourne lorsque la connexion est effectuée (avec succès ou dans l'erreur).Comment les notifications de connexion sont traitées est un détail d'implémentation MFC.
Pour plus d'informations sur chaque fonction de notification, consultez la fonction sous la classe CAsyncSocket dans MFC Reference.Pour le code source des informations sur les exemples MFC, consultez l' exemples MFC.
Pour plus d'informations, consultez :