Net Peer TCP
Cet exemple illustre l'utilisation de la liaison NetPeerTcpBinding, qui fournit la communication pluripartite à l'aide d'un canal homologue. Cet exemple est une variante de Getting Started, exemple. Pour une vue d'ensemble de Windows Communication Foundation (WCF), consultez Getting Started, exemple.
Dans cet exemple, les instances d'application sont des applications console auto-hébergées.
Contrairement à d'autres exemples de liaison de transport, cet exemple utilise l'interface de contrat personnalisée (IBroadcast
) à des fins d'illustration de la communication pluripartite. Toutes les instances implémentent ce contrat pour recevoir des messages et créer des proxys avec le même contrat afin d'envoyer des messages à la maille. Cela est illustré en créant un canal duplex vers la maille.
Remarque : |
---|
La procédure d'installation ainsi que les instructions de génération relatives à cet exemple figurent à la fin de cette rubrique. |
Le fonctionnement du processus de configuration de liaison dans l'exemple implique les concepts de canal homologue suivants :
- Le programme de résolution d'homologue est chargé de résoudre un ID de maille aux adresses de point de terminaison de certains nœuds de la maille.
- Une maille est une collection nommée de nœuds homologues identifiée par l'ID de maille.
- Un nœud homologue est une instance d'une application qui participe à la maille.
- Les ID de maille identifient la partie hôte de l'adresse d'un point de terminaison dans la maille. Ces adresses sont par exemple net.p2p://chatMesh/servicemodelsamples/chat ou net.p2p://broadcastMesh/servicemodelsamples/announcements. chatMesh et broadcastMesh sont les ID de maille.
- Tous les clients qui participent à une maille utilisent le même ID de maille, mais peuvent potentiellement utiliser des chemins d'accès et des services différents. Un message adressé à une adresse de point de terminaison spécifique est remis à tous les canaux homologues à l'aide de cette adresse.
Lorsqu'un nœud homologue est ouvert (suite à l'ouverture du canal homologue), il utilise un programme de résolution d'homologue pour résoudre l'ID de maille des adresses de quelques autres nœuds homologues auxquels se connecter. Cela crée une maille de nœuds interconnectés et permet de propager des messages sur l'ensemble de la maille.
La liaison est spécifiée dans les fichiers de configuration de l'expéditeur et des récepteurs. Le type de liaison est spécifié dans l'attribut binding de l'élément de point de terminaison, comme le montre l'exemple suivant.
<client>
<endpoint name="BroadcastEndpoint"
address=
"net.p2p://broadcastMesh/servicemodelsamples/announcements"
binding="netPeerTcpBinding"
bindingConfiguration="Binding1"
contract="Microsoft.ServiceModel.Samples.IBroadcast">
</endpoint>
</client>
Si vous utilisez la liaison NetPeerTcpBinding avec le comportement par défaut, la sécurité par mot de passe est activée. L'élément de liaison fournit des attributs permettant de définir le port, l'adresse IP d'écoute, le type de programme de résolution, la taille maximale des messages, la taille maximale du pool de mémoires tampons, les quotas de lecteurs, le mode d'authentification des nœuds homologues, l'authentification des messages et les délais d'attente (pour la fermeture, l'ouverture, l'envoi et la réception).
Remarque : |
---|
Cet exemple utilise le programme de résolution d'homologue par défaut (PNRP), qui n'est pas disponible dans Windows Server 2003. Par conséquent, vous devez utiliser un programme de résolution d'homologue personnalisé pour exécuter cet exemple dans Windows Server 2003. Reportez-vous à Peer Channel Chat pour obtenir un exemple qui utilise un programme de résolution d'homologue personnalisé, comme le montre le code suivant. |
<netPeerTcpBinding>
<binding configurationName="Binding1">
<resolver mode="Custom">
<customResolver type=
"MyAppNameSpace.MyCustomPeerResolver, myApp"/>
</resolver>
</binding>
</netPeerTcpBinding>
Le fichier qui contient MyCustomPeerResolver
doit être compilé avec l'expéditeur et les récepteurs. Notez que si l'exemple est exécuté sur plusieurs ordinateurs avec différentes plateformes, ils doivent tous utiliser le même programme de résolution.
Les implémentations de récepteur et d'expéditeur montrent également comment récupérer le nœud homologue associé à l'instance de récepteur ou d'expéditeur et comment s'inscrire aux événements en ligne et hors connexion. Un événement en ligne est initialisé lorsque le nœud homologue est connecté à au moins un autre nœud homologue dans la maille. Un événement hors connexion est initialisé lorsqu'un nœud homologue n'est plus connecté à aucun autre nœud homologue dans la maille.
À ce stade, le canal homologue ne s'intègre pas à l'Service Model Metadata Utility Tool (Svcutil.exe). Pour cette raison, Svcutil.exe ne peut pas être utilisé pour générer un canal typé pour l'expéditeur.
Lorsque vous exécutez l'expéditeur, un message s'affiche, indiquant qu'il est prêt à envoyer des messages. Appuyez sur ENTER pour envoyer l'exemple de message de conversation. Ce message est affiché dans les fenêtres de console du client récepteur en cours d'exécution. Pour terminer les clients, appuyez sur encore ENTER dans les fenêtres de console de ce client (expéditeur ou récepteur).
Si vous activez le suivi ou la journalisation des messages, vous pouvez surveiller l'activité de l'expéditeur et du récepteur de manière plus approfondie. Les procédures suivantes décrivent comment activer le suivi et la journalisation des messages.
Remarque : |
---|
Il est important de noter que l'exemple ne gère pas actuellement toutes les exceptions possibles que l'infrastructure peut lever. Si vous utilisez ces exemples dans un environnement commercial ou de production, suivez les meilleures pratiques de gestion des exceptions. |
Pour configurer, générer et exécuter l'exemple
Assurez-vous d'avoir effectué la procédure indiquée à la section Procédure d'installation unique pour les exemples Windows Communication Foundation.
Pour générer l'édition C# ou Visual Basic .NET de la solution, suivez les instructions indiquées dans Génération des exemples Windows Communication Foundation.
Pour exécuter l'exemple dans une configuration à un seul ordinateur, suivez les instructions indiquées dans Exécution des exemples Windows Communication Foundation.
PNRP est disponible dans Windows Vista, Windows XP SP3 et Windows Server 2008. Pour Windows XP SP2, suivez les instructions d'installation uniques :
- Dans le Panneau de configuration, double-cliquez sur Ajout/Suppression de programmes.
- Dans la boîte de dialogue Ajouter ou supprimer des programmes, cliquez sur Ajouter ou supprimer des composants Windows.
- Dans l'Assistant Composants de Windows, activez la case à cocher « Services de mise en réseau », puis cliquez sur « Détails ».
- Activez la case à cocher « Homologue à homologue » et cliquez sur « OK ».
- Cliquez sur « Suivant » dans l'Assistant Composants de Windows.
- Lorsque l'installation est terminée, cliquez sur « Terminer ».
- Dans une invite de commandes shell, démarrez le service PNRP à l'aide de la commande suivante : net start pnrpsvc.
Pour cet exemple, chaque fois que l'étape 3 fait référence au client et au service, ces étapes s'appliquent à l'expéditeur et au récepteur.
Démarrez le ou les récepteurs et l'expéditeur. Lorsque les instances se connectent, appuyez sur ENTER dans la console de l'application expéditrice pour envoyer l'exemple de message au ou aux récepteurs. Les messages de conversation envoyés par l'expéditeur sont reçus par tous les récepteurs.
Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.