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