Nombre maximal de sockets qu'une application peut utiliser

Traductions disponibles Traductions disponibles
Numéro d'article: 111855 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Résumé

Le nombre maximal de sockets pris en charge par un fournisseur Windows Sockets particulier est spécifique à l'implémentation. Une application ne doit faire aucune hypothèse quant la disponibilité d'un certain nombre de sockets.

Plus d'informations

Détails de l'implémentation Windows Sockets sont décrites dans la structure de WSAData retournée par WSAStartup() et définie comme suit :
struct WSAData {
     WORD          wVersion;
     WORD          wHighVersion;
     char           szDescription[WSADESCRIPTION_LEN+1];
     char          szSystemStatus[WSASYSSTATUS_LEN+1];
     unsigned short     iMaxSockets;
     unsigned short     iMaxUdpDg;
     char FAR *     lpVendorInfo
};
				
sur retour à partir de WSAStart() sur Windows NT
   iMaxSockets = 0x7fff (32767)
				
iMaxSockets étant le nombre maximal de sockets qu'un seul processus peut potentiellement ouvrir. Une implémentation Windows Sockets peut fournir un pool global de sockets pour une allocation à n'importe quel processus, ou il peut allouer des ressources par processus pour les sockets. Le nombre peut refléter la façon dont dans lequel la DLL de Sockets Windows ou le logiciel de gestion de réseau a été configuré. Le numéro peut également être utilisé lorsque vous écrivez une application comme une indication si l'implémentation Windows Sockets peut être utilisé par l'application.

Par exemple, un serveur X Windows peut vérifier iMaxSockets lorsqu'il démarre. Si le nombre de sockets est inférieur à 8, l'application affiche un message d'erreur informer l'utilisateur pour reconfigurer le logiciel de gestion de réseau. (Il s'agit d'une situation dans laquelle le texte szSystemStatus peut être utilisé.) Il n'y a aucune garantie qu'une application particulière peut allouer réellement iMaxSockets sockets, car il peut exister d'autres applications Windows Sockets en cours d'utilisation.

Toutefois, indépendamment du nombre de sockets pris en charge par une implémentation particulière est le problème du nombre maximal de sockets qu'une application peut utiliser réellement.

Le nombre maximal de sockets qu'une application Windows Sockets peut utiliser est déterminé par la constante FD_SETSIZE manifeste au moment de la compilation. Pour ce faire, à partir du fichier Winsock.H du Kit de développement logiciel (SDK) Win32 :
/*
 * Select uses arrays of SOCKETs. These macros manipulate such
 * arrays. FD_SETSIZE may be defined by the user before including
 * this file, but the default here should be >= 64.
 *
 * CAVEAT IMPLEMENTOR and USER: THESE MACROS AND TYPES MUST BE
 * INCLUDED IN WINSOCK.H EXACTLY AS SHOWN HERE.
 */ 
#ifndef FD_SETSIZE
#define FD_SETSIZE      64
#endif /* FD_SETSIZE */ 
				
cette valeur est utilisée pour construire les structures de fd_set utilisées dans select(). La valeur par défaut dans Winsock.H est 64. Si une application est conçue pour être en mesure de travailler avec plus de 64 sockets, définissez le manifeste FD_SETSIZE dans chaque fichier source avant d'inclure Winsock.H. Ceci est un moyen de cette méthode pour inclure la définition dans les options du compilateur dans le fichier Make, telles que l'ajout - DFD_SETSIZE = 128 en tant qu'option à la ligne de commande du compilateur pour Microsoft c.

Remarque : Définition FD_SETSIZE comme une valeur particulière n'a aucun effet sur le nombre réel de sockets fournis par une implémentation Windows Sockets.

Propriétés

Numéro d'article: 111855 - Dernière mise à jour: mercredi 1 novembre 2006 - Version: 3.1
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Windows NT Advanced Server 3.1
  • Microsoft Windows NT Workstation 3.1
Mots-clés : 
kbmt kbnetwork KB111855 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 111855
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com