Utilisation de WSPJoinLeaf

Comme mentionné précédemment, WSPJoinLeaf est utilisé pour joindre un nœud terminal dans une session multipoint. WSPJoinLeaf a les mêmes paramètres et la même sémantique que WSPConnect , sauf qu’il retourne un descripteur de socket (comme dans WSPAccept) et qu’il a un paramètre dwFlags supplémentaire. Le paramètre dwFlags est utilisé pour indiquer si le socket doit agir uniquement comme un expéditeur, uniquement comme récepteur, ou les deux. Seuls les sockets multipoint peuvent être utilisés pour les paramètres d' entrée dans cette fonction. Si le socket multipoint est en mode non bloquant, le descripteur de socket retourné n’est pas utilisable tant qu’une indication FD Connect correspondante n' _ a pas été reçue. Une application racine dans une session multipoint peut appeler WSPJoinLeaf une ou plusieurs fois pour ajouter un certain nombre de nœuds terminaux, mais au plus une demande de connexion multipoint peut être en suspens à la fois.

Le descripteur de socket retourné par WSPJoinLeaf est différent selon que le descripteur de socket d’entrée, s, est une _ racine c ou une _ feuille c. Lorsqu’il est utilisé avec un _ Socket racine c, le paramètre Name désigne un nœud terminal particulier à ajouter et le descripteur de socket retourné est un _ Socket feuille c correspondant au nœud terminal qui vient d’être ajouté. Il n’est pas destiné à être utilisé pour l’échange de données multipoint, mais est plutôt utilisé pour recevoir des indications d’événements réseau (par exemple _ , FD Close) pour la connexion qui existe à la feuille c particulière _ . Certaines implémentations multipoint peuvent également permettre l’utilisation de ce Socket pour les conversations latérales entre la racine et un nœud terminal individuel. Une _ indication FD Close doit être fournie pour ce Socket si le nœud terminal correspondant appelle WSPCloseSocket à supprimer de la session multipoint. En effet, l’appel de WSPCloseSocket sur le _ Socket feuille c retourné par WSPJoinLeaf amène le socket dans le nœud terminal correspondant à recevoir la _ notification FD Close.

Quand WSPJoinLeaf est appelé avec un _ Socket feuille c, le paramètre Name contient l’adresse de l’application racine (pour un schéma de contrôle enraciné) ou une session multipoint existante (schéma de contrôle non enraciné) et le descripteur de socket retourné est le même que le descripteur de socket d’entrée. Dans un schéma de contrôle enraciné, le client racine place son _ Socket racine c en mode d’écoute en appelant WSPListen. La notification d’acceptation FD standard est _ remise lorsque le nœud terminal demande de se joindre à la session multipoint. Le client racine utilise la fonction WSPAccept habituelle pour admettre le nouveau nœud terminal. La valeur retournée par WSPAccept est également un _ descripteur de socket feuille c comme ceux retournés par WSPJoinLeaf. Pour prendre en charge les schémas multipoint qui autorisent les jointures lancées à la racine et initiées par les feuilles, il est acceptable pour un _ Socket racine c qui est déjà en mode d’écoute d’être utilisé comme entrée dans WSPJoinLeaf.

Un client racine multipoint est généralement responsable du démontage ordonné d’une session multipoint. Une telle application peut utiliser WSPShutdown ou WSPCloseSocket sur un _ Socket racine c pour provoquer tous les _ sockets de feuille c associés, y compris ceux retournés à partir de WSPJoinLeaf et leurs Sockets de feuille c correspondants _ dans les nœuds terminaux distants, pour obtenir une _ notification FD Close.