Compartilhar via


getaddrinfo

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função fornece tradução independente de protocolo de nome do host ao endereço.

Syntax

int getaddrinfo(
  const char FAR* nodename,
  const char FAR* servname,
  const struct addrinfo FAR* hints,
  struct addrinfo FAR* FAR* res
);

Parameters

  • NodeName
    [no] Ponteiro para uma NULL-finalizada seqüência de caracteres contendo um nome hospedar (nó) ou um seqüência de caracteres endereço numérico hospedar. O seqüência de caracteres endereço numérico hospedar é um pontilhado-decimal IPv4 endereço ou um hexadecimal IPv6 endereço.
  • servname
    [no] Ponteiro para uma NULL-finalizada seqüência de caracteres contendo tanto um serviço nome ou número porta.
  • Dicas
    [no] Ponteiro para um addrinfo Oferece suporte a estrutura que fornece dicas sobre o tipo de Soquete o chamador.
  • Res
    [out] Ponteiro para uma lista vinculada de um ou mais addrinfo Estruturas contendo informações sobre a hospedar resposta.

Return Value

Essa função retorna zero quando bem-sucedido. O retorno de um diferente de zero código de erro Soquetes do Windows indica falha.

Códigos de erro diferente de zero retornados por essa função também mapa (n.); mapear (v.) para o conjunto de erros descrita por recomendações IETF. A seguinte tabela mostra esses códigos de erro e seus equivalentes WSA *. A seguinte tabela mostra os códigos de erro WSA *. É recomendável que esses códigos de erro WSA * sejam usados, como eles oferecem familiar e abrangente informações de erro para programadores Soquetes do Windows.

Código de erro Equivalente WSA* Descrição

EAI_AGAIN

WSATRY_AGAIN

Falha temporária em resolução de nomes.

EAI_BADFLAGS

WSAEINVAL

Valor inválido para ai_flags.

EAI_FAIL

WSANO_RECOVERY

Falha não recuperável no resolução de nomes.

EAI_FAMILY

WSAEAFNOSUPPORT

O ai_family membro não é com suporte.

EAI_MEMORY

WSA_NOT_ENOUGH_MEMORY

Falha alocação de memória.

EAI_NODATA

WSANO_DATA

Nenhum associado endereço com NodeName.

EAI_NONAME

WSAHOST_NOT_FOUND

Nem NodeName Nem servname fornecido ou não conhecido.

EAI_SERVICE

WSATYPE_NOT_FOUND

O servname parâmetro não é com suporte para ai_socktype.

Remarks

Uma ou ambas as NodeName Ou servname Os parâmetros devem apontar para um NULL-finalizada seqüência de caracteres; Geralmente, ambos são fornecidos.

O número máximo de endereços retornado ao tentar resolver um nome é 15.

Ao sucesso, uma lista vinculada do addrinfo Estruturas é retornado na Res parâmetro; a lista pode ser processada pelo seguinte o ponteiro fornecido na ai_next membro de cada retornado addrinfo estrutura até uma NULL ponteiro for encontrado. Em cada retornado addrinfo estrutura, a ai_family, ai_socktype, e ai_protocol Membros corresponder a respectivos argumentos em uma Soquete (Soquetes do Windows) chamada de função. Além disso, o ai_addr membro em cada retornado addrinfo estrutura aponta para uma estrutura endereço Soquete filled-in, o comprimento dos quais é especificado no seu ai_addrlen membro.

Os chamadores das getaddrinfo função pode fornecer dicas sobre o tipo de Soquete com suporte por um addrinfo estrutura apontado pelo Dicas parâmetro. Quando o Dicas parâmetro for usado, aplicar regras para seu associado addrinfo estrutura. A seguinte lista mostra as regras que aplicar:

  • Um valor de PF_UNSPEC para ai_family Indica o chamador irá aceitar qualquer família protocolo.
  • Um valor de zero para ai_socktype Indica o chamador irá aceitar qualquer tipo Soquete.
  • Um valor de zero para ai_protocol Indica o chamador irá aceitar qualquer protocolo.
  • ai_addrlen Deve ser zero ou um NULL ponteiro
  • ai_canonname Deve ser zero ou um NULL ponteiro
  • ai_addr Deve ser zero ou um NULL ponteiro
  • ai_next Deve ser zero ou um NULL ponteiro

Outros valores de addrinfo estrutura fornecida a Dicas parâmetro indicar requisitos específicos. De exemplo, se o chamador trata apenas TCP e não UDP, identificador de ai_socktype membro deve ser definido como SOCK_STREAM. Para outro exemplo, se o chamador trata apenas IPv4 e faz não identificador IPv6, a ai_family membro deve ser definido como PF_INET.

Se a pasta Dicas parâmetro é um NULL ponteiro, a getaddrinfo função trata como se o addrinfo estrutura no Dicas foi inicializado com seus ai_family membro definido como PF_UNSPEC e todos os outros membros definido como zero.

Uso de ai_flags in a Dicas parâmetro

A seguinte tabela mostra os sinalizadores in a ai_flags membro do opcional addrinfo estrutura fornecida a Dicas parâmetro.

Sinalizador Descrição

AI_PASSIVE

Se definido, este sinalizador indica o chamador pretende usar a estrutura endereço de soquete retornados em uma chamar para o BIND (Soquetes do Windows) função. Se este sinalizador estiver definido e NodeName é um NULL ponteiro, o IP parte endereço da do endereço Soquete estrutura é definida como INADDR_ANY para endereços IPv4 e endereços IN6ADDR_ANY_INIT para IPv6.

Se este sinalizador não estiver definida, a estrutura endereço Soquete retornado está pronta para um chamar para o conectar (Soquetes do Windows) função de um protocolo Connection-Oriented ou pronto para um chamar para o conectar (Soquetes do Windows), SendTo, ou Enviar funções de Uma sem conexão protocolo. Se a pasta NodeName parâmetro é um NULL ponteiro neste maiúsculas e minúsculas, a parte endereço IP da estrutura de endereço de soquete é definida como endereço de auto-retorno.

AI_CANONNAME

Se este sinalizador estiver definido e o getaddrinfo função retorna êxito, o ai_canonname membro in a Dicas parâmetro aponta para um NULL-finalizada seqüência de caracteres que contém a nome canônico do nó especificado.

Observação

O gettaddrinfo função pode retornar com êxito quando o sinalizador AI_CANNONNAME for definida, mas o ai_canonname membro de associado addrinfo estrutura é NULL.Portanto, o uso recomendado do sinalizador de AI_CANONNAME inclui testes se a ai_canonname membro de associado addrinfo estrutura é NULL.

AI_NUMERICHOST

Se este sinalizador estiver definido, o NodeName parâmetro deve conter um não-NULL hospedar numérico endereço seqüência de caracteres, caso contrário será retornado o Erro EAI_NONAME. Isso impede que um serviço resolução de nomes que está sendo chamado; Todas as informações retornadas pelo getaddrinfo função é alocada dinamicamente.

Se nem AI_CANONNAME AI_NUMERICHOST for usado, o getaddrinfo função tentativas resolução. Se um seqüência de caracteres literal é passado getaddrinfo tenta converter o seqüência de caracteres, e se um nome do host é passado a getaddrinfo função tenta resolvê-lo.

Liberando informações de endereço a partir de alocação dinâmica

Todas as informações retornadas pelo getaddrinfo função é alocada dinamicamente, incluindo todas as addrinfo estruturas, estruturas endereço de soquete e nome do host canônico seqüências de caracteres apontada pelo addrinfo estruturas. Para retornar que informações para o sistema, chamar o freeaddrinfo função.

Requirements

Header ws2tcpip.h
Library Ws2.lib
Windows Embedded CE Windows CE .NET 4.1 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

bind (Windows Sockets)
connect (Windows Sockets)
send
sendto
socket (Windows Sockets)
addrinfo
freeaddrinfo
WSAGetLastError