Utilisation de plusieurs protocoles
Une application utilise la fonction WSAEnumProtocols pour déterminer les protocoles de transport et les chaînes de protocoles présents, et pour obtenir des informations sur chacun d’eux, comme contenu dans la structure de WSAPROTOCOL_INFO associée.
Dans la plupart des cas, il existe une structure WSAPROTOCOL_INFO unique pour chaque protocole ou chaîne de protocole. Toutefois, certains protocoles présentent plusieurs comportements. Par exemple, le protocole SPX est orienté message (autrement dit, les limites de message de l’expéditeur sont conservées par le réseau), mais le socket de réception peut ignorer ces limites de message et les traiter comme un flux d’octets. Ainsi, deux entrées de structure WSAPROTOCOL_INFO différentes peuvent exister pour SPX, une pour chaque comportement.
Dans les sockets Windows 2, plusieurs nouvelles valeurs de famille d’adresses, de type de socket et de protocole s’affichent. Les sockets Windows 1.1 ont pris en charge une famille d’adresses unique (AF_INET) pour IPv4 qui se compose d’un petit nombre de types de sockets et d’identificateurs de protocole connus. Windows Sockets 2 conserve la famille d’adresses, le type de socket et les identificateurs de protocole existants pour des raisons de compatibilité, mais il prend également en charge de nouvelles valeurs de famille d’adresses pour les nouveaux protocoles de transport avec de nouveaux types de supports.
Les nouveaux identificateurs uniques ne sont pas nécessairement bien connus, mais cela ne devrait pas poser de problème. Les applications qui doivent être indépendantes du protocole sont encouragées à sélectionner un protocole en fonction de son adéquation plutôt que des valeurs attribuées à leurs paramètres de socket_type ou de protocole . L’adéquation du protocole est indiquée par les attributs de communication, tels que le flux de messages par rapport aux octets, et fiables ou non fiables, qui sont contenus dans la structure de WSAPROTOCOL_INFO de protocole. La sélection de protocoles sur la base de leur adéquation par opposition aux noms de protocoles et aux types de sockets connus permet aux applications indépendantes du protocole de tirer parti des nouveaux protocoles de transport et de leurs types de supports associés, à mesure qu’ils deviennent disponibles.
La moitié du serveur d’une application client/serveur bénéficie de l’établissement de sockets d’écoute sur tous les protocoles de transport appropriés. Ensuite, le client peut établir sa connexion à l’aide d’un protocole approprié. Par exemple, cela permettrait à une application cliente de ne pas être modifiée, qu’elle s’exécute sur un système de bureau connecté via un réseau local ou sur un ordinateur portable utilisant un réseau sans fil.