estrutura CSADDR_INFO (ws2def.h)

A estrutura CSADDR_INFO contém informações de endereço do Windows Sockets para um soquete, serviço de rede ou provedor de namespace.

Sintaxe

typedef struct _CSADDR_INFO {
  SOCKET_ADDRESS LocalAddr;
  SOCKET_ADDRESS RemoteAddr;
  INT            iSocketType;
  INT            iProtocol;
} CSADDR_INFO, *PCSADDR_INFO, *LPCSADDR_INFO;

Membros

LocalAddr

Tipo: SOCKET_ADDRESS

O endereço local do Windows Sockets.

Em um aplicativo cliente, passe esse endereço para a função de associação para obter acesso a um serviço de rede.

Em um serviço de rede, passe esse endereço para a função de associação para que o serviço seja associado ao endereço local apropriado.

RemoteAddr

Tipo: SOCKET_ADDRESS

Endereço remoto do Windows Sockets.

Há vários usos para este endereço remoto:

  • Você pode usar esse endereço remoto para se conectar ao serviço por meio da função de conexão . Isso será útil se um aplicativo executar operações de envio/ derecebimento que envolvem protocolos orientados à conexão.
  • Você pode usar esse endereço remoto com a função sendto quando estiver se comunicando por um protocolo sem conexão (datagram). Se você estiver usando um protocolo sem conexão, como UDP, sendto normalmente é a maneira como você passa dados para o sistema remoto.

iSocketType

Tipo: INT

O tipo de soquete do Windows. Os valores possíveis para o tipo de soquete são definidos no arquivo de cabeçalho Winsock2.h .

A tabela a seguir lista os valores possíveis compatíveis com o Windows Sockets 2:

Valor Significado
SOCK_STREAM
Um soquete de fluxo. Esse é um protocolo que envia dados como um fluxo de bytes, sem limites de mensagem. Esse tipo de soquete fornece fluxos de bytes baseados em conexão sequenciados, confiáveis, bidirecionais e baseados em conexão com um mecanismo de transmissão de dados OOB. Esse tipo de soquete usa o Protocolo de Controle de Transmissão (TCP) para a família de endereços da Internet (AF_INET ou AF_INET6).
SOCK_DGRAM
Um soquete de datagrama. Esse tipo de soquete dá suporte a datagramas, que são buffers sem conexão e não confiáveis de um comprimento máximo fixo (normalmente pequeno). Esse tipo de soquete usa o UDP (User Datagram Protocol) para a família de endereços da Internet (AF_INET ou AF_INET6).

Os serviços usam a função recvfrom para obter datagramas. As funções de escuta e aceitação não funcionam com datagramas.

SOCK_RDM
Um soquete de datagrama de mensagem confiável. Esse tipo de soquete preserva os limites de mensagem nos dados. Um exemplo desse tipo é a implementação do protocolo multicast PGM (Pragmática Geral Multicast) no Windows, geralmente conhecida como programação multicast confiável.
SOCK_SEQPACKET
Um soquete de fluxo de pacotes sequenciado. Esse tipo de soquete fornece um pacote pseudo-fluxo com base em datagramas.

iProtocol

Tipo: INT

O protocolo usado. As opções possíveis para o parâmetro de protocolo são específicas para a família de endereços e o tipo de soquete especificados. Os valores possíveis são definidos nos arquivos de cabeçalho Winsock2.h e Wsrm.h .

No SDK do Windows lançado para Windows Vista e posterior, a organização dos arquivos de cabeçalho foi alterada e esse parâmetro pode ser um dos valores do tipo de enumeração IPPROTO definido no arquivo de cabeçalho Ws2def.h . Observe que o arquivo de cabeçalho Ws2def.h é incluído automaticamente em Winsock2.h e nunca deve ser usado diretamente.

A tabela a seguir lista valores comuns para o protocolo , embora muitos outros valores sejam possíveis.

protocolo Significado
IPPROTO_TCP
6
O Protocolo de Controle de Transmissão (TCP). Esse é um valor possível quando a família de endereços é AF_INET ou AF_INET6 e o membro iSocketType é SOCK_STREAM.
IPPROTO_UDP
17
O UDP (Protocolo de Datagrama do Usuário). Esse é um valor possível quando a família de endereços é AF_INET ou AF_INET6 e o membro iSocketType é SOCK_DGRAM.
IPPROTO_RM
113
O protocolo PGM para multicast confiável. Esse é um valor possível quando a família de endereços é AF_INET e o membro iSocketType é SOCK_RDM. No SDK do Windows lançado para Windows Vista e posterior, esse valor também é chamado de IPPROTO_PGM.

Comentários

A função GetAddressByName obtém informações de endereço do Windows Sockets usando estruturas CSADDR_INFO .

A função getsockopt chamada com a opção de soquete SO_BSP_STATE recupera uma estrutura de CSADDR_INFO para o soquete especificado.

Requisitos

   
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho ws2def.h (inclua Nspapi.h)

Confira também

GetAddressByName

SOCKET_ADDRESS

SO_BSP_STATE

bind

connect

Getsockopt

Recv

send

Sendto