Partager via


Restrictions de plusieurs fournisseurs sur la sélection

La sélectionner fonction est utilisée pour déterminer l’état d’un ou plusieurs sockets dans un jeu. Pour chaque socket, l’appelant peut demander des informations sur l’état de lecture, d’écriture ou d’erreur. Un ensemble de sockets est indiqué par une structure fd_set.

Windows Sockets 2 permet à une application d’utiliser plusieurs fournisseurs de services, mais la sélectionner fonction est limitée à un ensemble de sockets associés à un seul fournisseur de services. Cela n’empêche pas une application d’avoir plusieurs sockets ouverts via plusieurs fournisseurs.

Il existe deux façons de déterminer l’état d’un ensemble de sockets qui s’étend sur plusieurs fournisseurs de services :

  • À l’aide des fonctions WSAWaitForMultipleEvents ou WSAEventSelect lors du blocage de la sémantique.
  • À l’aide de la fonction WSAAsyncSelect lorsque des opérations non bloquantes sont utilisées et que l’application utilise déjà une pompe de messages Windows.

Lorsqu’une application doit utiliser la sémantique de blocage sur un ensemble de sockets qui s’étend sur plusieurs fournisseurs, WSAWaitForMultipleEvents est recommandé. L’application peut également utiliser la fonction WSAEventSelect, ce qui permet aux événements réseau FD_XXX (voir WSAEventSelect) d’associer à un objet d’événement et d’être géré à partir du paradigme de l’objet d’événement (décrit dans objets d’E/S superposés et d’événements).

La fonctionWSAsyncSelectn’est pas limitée à un seul fournisseur, car elle prend un descripteur de socket unique comme paramètre d’entrée. Notez toutefois que fonction WSAEventSelect offre de meilleures performances et scalabilité sur WSAAsyncSelect car la surcharge de maintenance de la pompe de messages avec les messages d’événements Winsock augmente à mesure que le nombre total de sockets utilisés augmente.