Nombre maximal de sockets pris en charge
Le nombre maximal de sockets pris en charge par un fournisseur de services Windows Sockets (Winsock) particulier est spécifique à l’implémentation. Le fournisseur Microsoft Winsock limite uniquement le nombre maximal de sockets pris en charge par la mémoire disponible sur l’ordinateur local. Toutefois, les fournisseurs Winsock tiers peuvent avoir des limitations relatives au nombre de sockets pris en charge. Une application ne doit pas formuler des hypothèses sur la disponibilité d’un certain nombre de sockets. Pour obtenir plus d’informations sur cette rubrique, consultez WSAStartup.
FD_SET et fonction select
Un certain nombre de macros FD_XXX sont définies dans le fichier d’en-tête Winsock2.h à utiliser dans le portage d’applications vers Windows à partir de l’environnement UNIX. Ces macros sont utilisées avec les fonctions select et WSAPoll pour le portage d’applications vers Windows. Le nombre maximal de sockets qu’une application Winsock peut utiliser n’est pas affecté par la constante de manifeste FD_SETSIZE. Cette valeur définie dans le fichier d’en-tête Winsock2.h est utilisée pour construire les structures fd_set utilisées avec la fonction select. La valeur par défaut dans Winsock2.h est 64. Si une application est conçue pour utiliser plus de 64 sockets en utilisant les fonctions select et WSAPoll, l’initiateur doit définir le manifeste FD_SETSIZE dans chaque fichier source avant d’inclure le fichier d’en-tête Winsock2.h. Une façon de procéder peut consister à inclure la définition dans les options de l’initiateur du makefile. Par exemple, vous pouvez ajouter « -DFD_SETSIZE=128 » en tant qu’option à la ligne de commande du compilateur pour Microsoft C++. Nous devons souligner que la définition de FD_SETSIZE comme valeur particulière n’a aucun effet sur le nombre réel de sockets fournis par un fournisseur de services Winsock. Cette valeur affecte uniquement les macros FD_XXX utilisées par les fonctions select et WSAPoll.
Rubriques connexes