Partager via


Multihoming et PGM

Une attention particulière doit être accordée aux expéditeurs ou récepteurs PGM multi-hébergement. Cette page décrit les considérations et fournit des instructions pour les meilleures pratiques de programmation.

Expéditeur PGM multi-hébergement

Lorsqu’une application ne parvient pas à spécifier une interface lors de l’appel de la fonction connect , la première interface disponible est utilisée. Si aucune interface n’est disponible, la connexion échoue.

Lorsqu’une application spécifie une interface à l’aide de l’option de socket RM_SET_SEND_IF , une tentative de liaison est effectuée implicitement avec cette interface à l’aide de TCP/IP et échoue si TCP/IP échoue à la demande de liaison. Si l’interface est définie à l’aide de RM_SET_SEND_IF plusieurs fois, seul le dernier jeu d’interface est applicable.

Windows Sockets conserve l’interface définie, et si cette interface disparaît, la session est déconnectée.

Récepteur PGM multi-hébergement

Lorsqu’une application ne parvient pas à spécifier une interface lors de l’appel de la fonction listen , l’interface par défaut est utilisée. Si aucune interface n’est disponible, la liaison échoue.

Lorsqu’une application spécifie une ou plusieurs interfaces sur lesquelles écouter, à l’aide de RM_ADD_RECEIVE_IF, Windows Sockets tente de se lier à l’interface ou aux interfaces demandées à l’aide de TCP/IP. Toute erreur de TCP/IP entraîne l’échec de cette requête. Contrairement au cas de l’expéditeur PGM, l’ajout d’une interface de réception plusieurs fois entraîne la publication des écoutes sur toutes les interfaces ajoutées avec succès. Utilisez l’option de socket RM_DEL_RECEIVE_IF pour arrêter l’écoute sur une interface.

Les sockets Windows ne conservent pas l’état de plusieurs interfaces d’écoute spécifiées et s’appuient plutôt sur TCP/IP pour ce faire. Toutefois, une fois qu’une session est en cours, Windows Sockets effectue le suivi de l’interface entrante pour cette session, et si cette interface disparaît, Windows Sockets déconnecte la session.