DetailPage-MSS-KB

Base de Dados de Conhecimento

ID do artigo: 111855 - Última revisão: quarta-feira, 1 de novembro de 2006 - Revisão: 3.1

 

Sumário

O número máximo de soquetes para os quais um fornecedor específico do Windows Sockets oferece suportado é específico de implementação. Um aplicativo deve fazer não suposições sobre a disponibilidade de um determinado número de soquetes.

Mais Informações

Os detalhes da implementação do Windows Sockets estão descritos na estrutura de WSAData retornado pelo WSAStartup() e definidas da seguinte maneira:
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
};
				
no retorno de WSAStart() no Windows NT
   iMaxSockets = 0x7fff (32767)
				
onde iMaxSockets é o número máximo de soquetes que potencialmente pode abrir um único processo. Uma implementação de Windows Sockets pode fornecer um pool de soquetes global para alocação para qualquer processo ou ele pode alocar recursos por processo para soquetes. O número pode refletir a maneira em que a DLL do Windows Sockets ou o software de rede foi configurado. O número também pode ser usado ao escrever um aplicativo como uma indicação de se a implementação do Windows Sockets pode ser usada pelo aplicativo.

Por exemplo, um servidor X Windows pode verificar iMaxSockets quando ele é iniciado. Se o número de soquetes é menor do que 8, o aplicativo exibirá uma mensagem de erro instruindo o usuário para reconfigurar o software de rede. (Isso é uma situação em que o texto szSystemStatus pode ser usado.) Não há nenhuma garantia de que um determinado aplicativo pode alocar realmente iMaxSockets soquetes, porque pode haver outros aplicativos Windows Sockets em uso.

No entanto, independentemente do número de soquetes oferece suporte para uma implementação específica é o problema do número máximo de soquetes que um aplicativo, na verdade, pode usar.

O número máximo de soquetes que um aplicativo do Windows Sockets pode usar é determinado no tempo de compilação, o manifesto FD_SETSIZE constante. Para fazer isso, de arquivo 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 é usado na construção as estruturas de fd_set usadas em select(). O valor padrão no WINSOCK.H é 64. Se um aplicativo é desenvolvido para ser capaz de trabalhar com mais de 64 soquetes, defina FD_SETSIZE manifesto em cada arquivo de origem antes de incluir WINSOCK.H. Uma forma de fazer isso é incluir a definição de opções do compilador no makefile, como adicionar - DFD_SETSIZE = 128 como uma opção para a linha de comando do compilador para Microsoft C.

Observação: Definindo FD_SETSIZE como um valor específico não tem efeito no número real de soquetes fornecido por uma implementação de Windows Sockets.

A informação contida neste artigo aplica-se a:
  • Microsoft Windows NT Advanced Server 3.1
  • Microsoft Windows NT Workstation 3.1
Palavras-chave: 
kbmt kbnetwork KB111855 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 111855  (http://support.microsoft.com/kb/111855/en-us/ )
Compartilhar
Opções de suporte adicionais
Fóruns de Suporte do Microsoft Community
Contate-nos diretamente
Localize um parceiro certificado da Microsoft
Microsoft Store