Compartilhar via


CAsyncSocket::GetSockOpt

Chamar essa função de membro para recuperar uma opção de soquete.

BOOL GetSockOpt( 
   int nOptionName, 
   void* lpOptionValue, 
   int* lpOptionLen, 
   int nLevel = SOL_SOCKET  
);

Parâmetros

  • nOptionName
    A opção de soquete para que o valor deve ser recuperado.

  • lpOptionValue
    Um ponteiro para o buffer em que o valor para a opção solicitada deve ser retornado. O valor associado com a opção selecionada é retornado no buffer lpOptionValue. Toda apontado por lpOptionLen originalmente deve conter o tamanho do buffer em bytes; no, e retorno será definido como o tamanho do valor retornado. Para SO_LINGER, este será o tamanho de uma estrutura de LINGER ; para todas opções restantes será o tamanho de BOOL ou de int, como a opção. Consulte a lista de opções e seus tamanhos na seção comentários.

  • lpOptionLen
    Um ponteiro para o tamanho do buffer de lpOptionValue em bytes.

  • nLevel
    o nível em que a opção é definida; os únicos níveis são suportados SOL_SOCKET e IPPROTO_TCP.

Valor de retorno

Diferente de zero se a função é com êxito; se não 0, e um código de erro específico podem ser recuperados chamando GetLastError. Se uma opção nunca foi definida com SetSockOpt, então GetSockOpt retorna o valor padrão para a opção. Os seguintes erros se aplicam a essa função de membro:

  • WSANOTINITIALISED A AfxSocketInit com êxito deve ocorrer antes de usar este API.

  • WSAENETDOWN a implementação da do windows detectou que o subsistema de rede falhou.

  • WSAEFAULT o argumento de lpOptionLen era inválido.

  • A operação de soquetes do windows de bloqueio deWSAEINPROGRESS A está em andamento.

  • WSAENOPROTOOPT a opção for desconhecido ou sem suporte. Em particular, SO_BROADCAST não é suportado nos soquetes de tipo SOCK_STREAM, quando SO_ACCEPTCONN, SO_DONTLINGER, SO_KEEPALIVE, SO_LINGER, e SO_OOBINLINE não são suportados na SOCK_DGRAMdo tipo.

  • WSAENOTSOCK o descritor não for um soquete.

Comentários

GetSockOpt recupera o valor atual de uma opção de soquete associada com um soquete de qualquer tipo, em qualquer estado, e armazena o resultado em lpOptionValue. Operações de soquete de afetar opções, como o roteamento de pacotes, transferência de dados fora de banda, e assim por diante.

As seguintes opções são suportadas para GetSockOpt. o tipo identifica o tipo de dados endereçados por lpOptionValue. Usos IPPROTO_TCPnivelado padrão de TCP_NODELAY ; qualquer nível SOL_SOCKETrestante do uso de padrões.

Valor

Tipo

Significado

SO_ACCEPTCONN

BOOL

O soquete que estejam aguardando.

SO_BROADCAST

BOOL

O soquete é configurado para transmissão de mensagens espalhado.

SO_DEBUG

BOOL

A depuração está ativada.

SO_DONTLINGER

BOOL

Se verdadeiro, a opção de SO_LINGER é desativada.

SO_DONTROUTE

BOOL

Roteamento é desativado.

SO_ERROR

int

Recuperar o status de erro e apagá-lo.

SO_KEEPALIVE

BOOL

Manter-alives está sendo enviado.

SO_LINGER

a estrutura ATRASA-SE

Retorna a atual atrasam-se opções.

SO_OOBINLINE

BOOL

Os dados fora de banda estão sendo recebidos no fluxo de dados normal.

SO_RCVBUF

int

O tamanho do buffer para receber.

SO_REUSEADDR

BOOL

O soquete pode ser associado a um endereço que já em uso.

SO_SNDBUF

int

Tamanho do buffer para envia.

SO_TYPE

int

O tipo de soquete (por exemplo, SOCK_STREAM).

TCP_NODELAY

BOOL

Desativam o algoritmo de Nagle para enviar o que coalesce.

As opções de (BSD) de Berkeley Software Distribution não são suportadas para GetSockOpt :

Valor

Tipo

Significado

SO_RCVLOWAT

int

Receba a marca de maré baixa.

SO_RCVTIMEO

int

Recebe o tempo limite.

SO_SNDLOWAT

int

Enviar a marca de maré baixa.

SO_SNDTIMEO

int

Enviar o tempo limite.

IP_OPTIONS

 

Obter opções no cabeçalho de IP.

TCP_MAXSEG

int

Obter o tamanho máximo do segmento TCP.

A chamada GetSockOpt com uma opção sem suporte resultará em um código de erro de WSAENOPROTOOPT que está sendo retornados de GetLastError.

Requisitos

Cabeçalho: afxsock.h

Consulte também

Referência

Classe CAsyncSocket

Gráfico da hierarquia

CAsyncSocket::SetSockOpt