- Bloquante : XNetworkingQueryPreferredLocalUdpMultiplayerPort
- Asynchrone : XNetworkingQueryPreferredLocalUdpMultiplayerPortAsync
- Basée sur les notifications : XNetworkingRegisterPreferredLocalUdpMultiplayerPortChanged
INADDR_ANY/in6addr_any.
Gestion des échecs de socket
Rien ne garantit que le port retourné peut être utilisé pour établir une connexion de socket réussie avec des serveurs ou des pairs particuliers. La logique habituelle de nouvelle tentative et de repli du titre doit être appliquée. Chaque fois que le socket est fermé et rouvert, le titre doit interroger de nouveau le port multijoueur UDP local préféré le plus récent, car le port peut changer au fil du temps.Initialisation du réseau
Les trois variantes (bloquante, asynchrone et basée sur les notifications) de l’APIXNetworkingQueryPreferredLocalUdpMultiplayerPort bloquent ou retardent l’achèvement ou les notifications jusqu’à ce que le réseau soit initialisé au lancement du titre et lors de la reprise. Vous pouvez attendre séparément l’initialisation du réseau conformément à la vue d’ensemble Détection de l’état d’initialisation du réseau, ou appeler ces API et attendre qu’elles retournent.
Suspension et reprise
Comme tout autre socket, le socket lié au port multijoueur UDP local préféré doit être fermé lors de la suspension et recréé lors de la reprise, après avoir attendu l’initialisation du réseau. Vous devez vous inscrire aux événements de suspension et de reprise au moyen deRegisterAppStateChangeNotification. Lors de la reprise, vous devez supposer que le port multijoueur UDP local préféré a changé et soit être à l’écoute des changements du port multijoueur UDP local préféré, soit l’interroger de nouveau lors de la création de vos nouveaux sockets. Pour plus d’informations sur la gestion de la suspension et de la reprise dans WinSock, consultez Suspension et reprise dans Winsock.
Changements du port multijoueur UDP local préféré
Le titre peut être à l’écoute des changements du port multijoueur UDP local préféré à l’aide de l’API XNetworkingRegisterPreferredLocalUdpMultiplayerPortChanged. Tout est mis en œuvre pour que le port multijoueur UDP local préféré ne change pas pendant l’exécution du titre. Toutefois, dans certains cas inévitables, le port change parce que les conditions du réseau externe de l’utilisateur changent et invalident les flux de socket existants. Le port est particulièrement susceptible de changer lorsque le niveau de connectivité réseau change, ou dans le cadre du cycle de suspension/reprise d’un titre. Lorsque le port multijoueur UDP local préféré change, les connexions entrantes supplémentaires provenant de futurs pairs pourraient être bloquées sur tout port préféré précédent. Cela pourrait ne pas causer d’échec au niveau de la couche socket. Toutefois, le titre pourrait éventuellement cesser de recevoir des paquets sur tout socket lié à un port préféré précédent. Les paquets envoyés aux pairs existants et reçus de ceux-ci pourraient continuer de fonctionner. Une notification de changement du port multijoueur UDP local préféré pourrait ne pas être fatale pour une session de jeu en cours. Lorsqu’une notification de changement survient, le titre doit migrer vers un nouveau socket lié au nouveau port préféré. Cette migration doit avoir lieu le plus tôt possible et sans interrompre le jeu en cours. Pour détecter une perte de connexion et pour retenter la connexion de socket, le titre doit toujours utiliser le port préféré le plus récent.Tester les changements du port multijoueur UDP local préféré
Suivez les étapes ci-dessous pour changer le port multijoueur UDP local préféré.- Pendant que votre jeu est en cours d’exécution, ouvrez le Guide XBOX. Accédez à l’application Paramètres.
- Dans l’onglet Général, sélectionnez Paramètres réseau.
- Sélectionnez Paramètres avancés, puis Sélection d’un autre port.
- Réglez la sélection du port sur Manuel. Pour sélectionner un port, utilisez le menu déroulant.
- La sélection du port prend effet immédiatement et entraîne l’envoi d’une notification correspondante à votre titre.
- Lorsque vous avez terminé vos tests, réglez de nouveau la sélection du port sur Automatique pour rétablir le comportement par défaut du port.
Lorsque vous êtes dans l’application Paramètres, votre titre est en mode restreint (constrained), mais continue de s’exécuter et reçoit immédiatement la notification de changement de port, même s’il n’est pas visible. Votre titre est suspendu si vous laissez l’application Paramètres ouverte pendant plus de 10 minutes sans revenir à votre titre.
Sécurité
Le socket lié au port multijoueur UDP local préféré se comporte comme n’importe quel autre socket. En particulier, le socket n’offre aucune sécurité supplémentaire. Le titre doit utiliser son propre protocole de communication sécurisé par-dessus le socket lié au port multijoueur UDP local préféré, comme le précisent les pratiques exemplaires en matière de sécurité des communications. Pour plus d’informations, consultez Vue d’ensemble de la sécurité des communications (rubrique sous NDA).Pair à pair
Le port multijoueur UDP local préféré fournit le meilleur port connu à partir duquel un maillage pair à pair peut être établi. Il est configuré de la meilleure façon possible pour permettre les connexions entrantes à travers la couche NAT de l’utilisateur. Toutefois, il incombe au titre d’effectuer la traversée NAT, y compris ce qui suit.- Détection du type de NAT
- Détection et échange de l’adresse IP publique et du port de l’appareil
- Perforation (punching) et traversée NAT
