Número máximo de sockets que puede utilizar una aplicación

Seleccione idioma Seleccione idioma
Id. de artículo: 111855 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Resumen

El número máximo de sockets admitida un determinado proveedor Windows Sockets es específica de la implementación. Una aplicación no debe realizar ninguna suposición acerca de la disponibilidad de un determinado número de sockets.

Más información

Detalles de la implementación de Windows Sockets se describen en la estructura de WSAData devuelto por WSAStartup() y se define como sigue:
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
};
				
al volver de WSAStart() en Windows NT
   iMaxSockets = 0x7fff (32767)
				
donde iMaxSockets es el número máximo de sockets que potencialmente puede abrir un único proceso. Una implementación de Windows Sockets puede proporcionar un grupo global de sockets para la asignación a cualquier proceso, o pueden asignar recursos por proceso para sockets. El número puede reflejan la forma en que se ha configurado la DLL de Windows Sockets o el software de red. También se puede utilizar el número al escribir una aplicación como una indicación de si la implementación de Windows Sockets puede utilizarse por la aplicación.

Por ejemplo, un servidor X Windows puede comprobar iMaxSockets cuando se inicia. Si el número de sockets es menor que 8, la aplicación muestra un mensaje de error indica al usuario volver a configurar el software de red. (Esto es una situación en que se puede utilizar el texto szSystemStatus.) No hay ninguna garantía de que una aplicación determinada puede asignar realmente iMaxSockets sockets, porque puede haber otras aplicaciones Windows Sockets en uso.

Sin embargo, independiente del número de sockets admitidas una implementación determinada es el número máximo de sockets que una aplicación puede utilizar realmente el problema.

El manifiesto FD_SETSIZE constante depende el número máximo de sockets que una aplicación de Windows Sockets puede utilizar en tiempo de compilación. Para ello, desde el archivo de Win32 SDK WINSOCK.H:
/*
 * 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 */ 
				
este valor se utiliza para construir las estructuras de fd_set utilizadas en Select() del. El valor predeterminado en WINSOCK.H es 64. Si una aplicación está diseñada para ser capaz de trabajar con más de 64 sockets, defina el manifiesto FD_SETSIZE en cada archivo de origen antes de incluir WINSOCK.H. Una forma de hacerlo esto consiste en incluir la definición de las opciones del compilador en el archivo MAKE, como agregar - DFD_SETSIZE = 128 como una opción a la línea de comandos del compilador para Microsoft C.

Nota: Definir FD_SETSIZE como un valor concreto no tiene efecto en el número real de sockets proporciona una implementación de Windows Sockets.

Propiedades

Id. de artículo: 111855 - Última revisión: miércoles, 01 de noviembre de 2006 - Versión: 3.1
La información de este artículo se refiere a:
  • Microsoft Windows NT Advanced Server 3.1
  • Microsoft Windows NT Workstation 3.1
Palabras clave: 
kbmt kbnetwork KB111855 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 111855

Enviar comentarios

 

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