Função getsockname (winsock.h)

A função getsockname recupera o nome local de um soquete.

Sintaxe

int getsockname(
  [in]      SOCKET   s,
  [out]     sockaddr *name,
  [in, out] int      *namelen
);

Parâmetros

[in] s

Descritor que identifica um soquete.

[out] name

Ponteiro para uma estrutura SOCKADDR que recebe o endereço (nome) do soquete.

[in, out] namelen

Tamanho do buffer de nome , em bytes.

Retornar valor

Se nenhum erro ocorrer, getsockname retornará zero. Caso contrário, um valor de SOCKET_ERROR será retornado e um código de erro específico poderá ser recuperado chamando WSAGetLastError.

Código do erro Significado
WSANOTINITIALISED
Uma chamada WSAStartup bem-sucedida deve ocorrer antes de usar essa API.
WSAENETDOWN
O subsistema de rede falhou.
WSAEFAULT
O nome ou o parâmetro namelen não é uma parte válida do espaço de endereço do usuário ou o parâmetro namelen é muito pequeno.
WSAEINPROGRESS
Uma chamada de bloqueio do Windows Sockets 1.1 está em andamento ou o provedor de serviços ainda está processando uma função de retorno de chamada.
WSAENOTSOCK
O descritor não é um soquete.
WSAEINVAL
O soquete não foi associado a um endereço com associação ou ADDR_ANY está especificado na associação , mas a conexão ainda não ocorreu.

Comentários

A função getsockname recupera o nome atual do descritor de soquete especificado no nome. Ele é usado no soquete associado ou conectado especificado pelo parâmetro s . A associação local é retornada. Essa chamada é especialmente útil quando uma chamada de conexão é feita sem fazer uma associação primeiro; a função getsockname fornece a única maneira de determinar a associação local que foi definida pelo sistema.

Na chamada, o parâmetro namelen contém o tamanho do buffer de nome , em bytes. No retorno, o parâmetro namelen contém o tamanho real em bytes do parâmetro name .

A função getsockname nem sempre retorna informações sobre o endereço do host quando o soquete foi associado a um endereço não especificado, a menos que o soquete tenha sido conectado com connect ou accept (por exemplo, usando ADDR_ANY). Um aplicativo do Windows Sockets não deve assumir que o endereço será especificado, a menos que o soquete esteja conectado. O endereço que será usado para o soquete é desconhecido, a menos que o soquete esteja conectado quando usado em um host multihomed. Se o soquete estiver usando um protocolo sem conexão, o endereço poderá não estar disponível até que a E/S ocorra no soquete.

Windows Phone 8: essa função tem suporte para aplicativos da Windows Phone Store no Windows Phone 8 e posterior.

Windows 8.1 e Windows Server 2012 R2: essa função tem suporte para aplicativos da Windows Store em Windows 8.1, Windows Server 2012 R2 e posteriores.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8.1, Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho winsock.h (inclua Winsock2.h)
Biblioteca Ws2_32.lib
DLL Ws2_32.dll

Confira também

SOCKADDR

Funções Winsock

Referência de Winsock

bind

Getpeername

socket