CAsyncSocket::GetSockOpt
Chame 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 o qual o valor é a serem recuperados.lpOptionValue
Um ponteiro para o buffer no qual o valor para a opção solicitada é a ser retornado.O valor associado com a opção selecionada é retornado no buffer lpOptionValue. O número inteiro apontada por lpOptionLen originalmente deve conter o dimensionar desse buffer em bytes; e no retorno, ele será conjunto o dimensionar do valor retornado. For SO_LINGER, esse será o dimensionar de um LINGER estruturar; para todas as Outros opções será o dimensionar de um BOOL or an int, dependendo da opção. Consulte a lista de opções e seus tamanhos na seção comentários.lpOptionLen
Um ponteiro para o dimensionar do lpOptionValue buffer em bytes.nLevel
O nível em que a opção é definida; os níveis com suporte somente são SOL_SOCKET and IPPROTO_TCP.
Valor de retorno
Diferente de zero se a função for bem-sucedida; caso contrário, 0, e um código de erro específico pode ser recuperado chamando GetLastError.Se uma opção nunca foi definida com SetSockOpt, em seguida, GetSockOpt Retorna o valor padrão para a opção. Os seguintes erros se aplicam a essa função de membro:
WSANOTINITIALISED Um bem-sucedida AfxSocketInit deve ocorrer antes de usar essa API.
WSAENETDOWN A implementação do Windows Sockets detectou que o subsistema de rede falhou.
WSAEFAULT The lpOptionLen argumento inválido.
WSAEINPROGRESS Uma operação de bloqueio de Windows Sockets está em andamento.
WSAENOPROTOOPT A opção é desconhecido ou sem suporte.Em particular, SO_BROADCAST não tem suporte em soquetes do tipo SOCK_STREAM, while SO_ACCEPTCONN, SO_DONTLINGER, SO_KEEPALIVE, SO_LINGER, and SO_OOBINLINE não são suportados em soquetes do tipo SOCK_DGRAM.
WSAENOTSOCK O descritor não é um soquete.
Comentários
GetSockOpt recupera o valor corrente para uma opção de soquete associada a um soquete de qualquer tipo, em qualquer estado e armazena o resultado no lpOptionValue. Opções afetam operações de soquete, sistema autônomo o roteamento de pacotes, transferência de dados fora de banda e assim por diante.
As opções a seguir são suportadas para GetSockOpt. O tipo identifica o tipo de dados abordados por lpOptionValue. The TCP_NODELAY opção usa nível IPPROTO_TCP; todas as outras opções de uso nível SOL_SOCKET.
Valor |
Type (Tipo) |
Significado |
---|---|---|
SO_ACCEPTCONN |
BOOL |
Soquete está escutando. |
SO_BROADCAST |
BOOL |
Soquete é configurado para difundido de mensagens de difundido. |
SO_DEBUG |
BOOL |
A depuração está habilitada. |
SO_DONTLINGER |
BOOL |
Se verdadeiro, a SO_LINGER opção está desabilitado. |
SO_DONTROUTE |
BOOL |
O roteamento desabilitado. |
SO_ERROR |
int |
Recuperar o status de erro e desmarcar. |
SO_KEEPALIVE |
BOOL |
Keep-alives estão sendo enviadas. |
SO_LINGER |
struct LINGER |
Retorna as opções linger corrente. |
SO_OOBINLINE |
BOOL |
Dados fora de banda está sendo recebidos no fluxo de dados normal. |
SO_RCVBUF |
int |
dimensionar do buffer para recebe. |
SO_REUSEADDR |
BOOL |
O soquete pode ser limite a um endereço que já está em uso. |
SO_SNDBUF |
int |
dimensionar do buffer de envia. |
SO_TYPE |
int |
O tipo de soquete (por exemplo, SOCK_STREAM). |
TCP_NODELAY |
BOOL |
Desativa o algoritmo Nagle para concentração de enviar. |
Opções de Berkeley Software Distribution (BSD) não tem suportadas para GetSockOpt são:
Valor |
Type (Tipo) |
Significado |
---|---|---|
SO_RCVLOWAT |
int |
Receba marca d ' água baixa. |
SO_RCVTIMEO |
int |
Receba tempo limite. |
SO_SNDLOWAT |
int |
enviar marca d ' água baixa. |
SO_SNDTIMEO |
int |
Envie o tempo limite. |
IP_OPTIONS |
|
Obtenha opções no cabeçalho IP. |
TCP_MAXSEG |
int |
Obter o dimensionar máximo de segmento TCP. |
De chamadaGetSockOpt com uma opção para o qual não há suporte resultará em um código de erro WSAENOPROTOOPT sendo retornados a partir de GetLastError.
Requisitos
Cabeçalho: afxsock.h