Condividi tramite


CAsyncSocket::GetSockOpt

Chiamare la funzione membro per recuperare un'opzione di socket.

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

Parametri

  • nOptionName
    L'opzione di socket per il quale il valore deve essere recuperata.

  • lpOptionValue
    Un puntatore a un buffer in cui il valore per l'opzione richiesta deve essere restituito.Il valore associato all'opzione selezionata viene restituito nel buffer lpOptionValue.L'integer puntato da lpOptionLen originariamente deve contenere la dimensione del buffer in byte, e restituiscono, verrà impostato sulla dimensione del valore restituito.Per SO_LINGER, questa verrà la dimensione di una struttura LINGER ; per le altre opzioni sarà la dimensione BOOL o int, come l'opzione.Vedere l'elenco delle opzioni e delle relative dimensioni nella sezione relativa alle osservazioni.

  • lpOptionLen
    Puntatore alla dimensione lpOptionValue memorizza nel buffer in byte.

  • nLevel
    Il livello in cui viene definita l'opzione, gli unici livelli sono supportati SOL_SOCKET e IPPROTO_TCP.

Valore restituito

Diverso da zero se la funzione ha esito positivo; in caso contrario 0 e un codice di errore specifico possono essere recuperati chiamando GetLastError.Se un'opzione non è stata impostata mai con SetSockOpt, quindi GetSockOpt restituisce il valore predefinito per l'opzione.Gli errori seguenti si applicano a questa funzione membro:

  • WSANOTINITIALISED Al AfxSocketInit deve verificarsi prima di utilizzare questa API.

  • WSAENETDOWN che l'implementazione di Windows Sockets ha rilevato che il sottosistema di rete non è riuscita.

  • WSAEFAULT l'argomento lpOptionLen non è valido.

  • WSAEINPROGRESS che blocca l'operazione di Windows Sockets è in corso.

  • WSAENOPROTOOPT l'opzione è sconosciuto o non supportato.In particolare, SO_BROADCAST non è supportato su socket di tipo SOCK_STREAM, mentre SO_ACCEPTCONN, SO_DONTLINGER, SO_KEEPALIVE, SO_LINGERe SO_OOBINLINE non sono supportati sui socket di tipo SOCK_DGRAM.

  • WSAENOTSOCK il descrittore non è un socket.

Note

GetSockOpt recupera il valore corrente di un'opzione di socket associata a un socket di qualsiasi tipo, nello stato e archivia il risultato in lpOptionValue.Operazioni di socket effetti di opzioni, come il routing dei pacchetti, trasferimento di dati fuori banda, e così via.

Le opzioni seguenti sono supportate per GetSockOpt.Il tipo identifica il tipo di dati indirizzati da lpOptionValue.L'opzione TCP_NODELAY utilizza IPPROTO_TCPlivello, le altre opzioni utilizzano SOL_SOCKETlivello.

Valore

Type

Significato

SO_ACCEPTCONN

BOOL

Il socket ascoltano.

SO_BROADCAST

BOOL

Il socket viene configurato per la trasmissione dei messaggi trasmessi.

SO_DEBUG

BOOL

Il debug è abilitato.

SO_DONTLINGER

BOOL

Se true, l'opzione SO_LINGER è disabilitata.

SO_DONTROUTE

BOOL

Il routing è disabilitato.

SO_ERROR

int

Recuperare lo stato di errore e deselezionare.

SO_KEEPALIVE

BOOL

Mantenere - alives viene inviata.

SO_LINGER

la struttura INDUGIA

Restituisce l'oggetto corrente indugiano opzioni.

SO_OOBINLINE

BOOL

I dati fuori banda vengono ricevendi nel flusso di dati normale.

SO_RCVBUF

int

Le dimensioni del buffer per ricevono.

SO_REUSEADDR

BOOL

Il socket può essere associato a un indirizzo già utilizzato.

SO_SNDBUF

int

Le dimensioni del buffer per inviare.

SO_TYPE

int

Il tipo di socket, ad esempio SOCK_STREAM).

TCP_NODELAY

BOOL

Disabilita l'algoritmo Nagle di unione dei pacchetti in invio.

Le opzioni (BSD) di Berkeley Software Distribution di supporto per GetSockOpt sono:

Valore

Type

Significato

SO_RCVLOWAT

int

Ricevere il limite minimo.

SO_RCVTIMEO

int

Intervallo di ricezione.

SO_SNDLOWAT

int

Inviare il limite minimo.

SO_SNDTIMEO

int

Inviare l'intervallo.

IP_OPTIONS

 

Ottiene le opzioni di intestazione IP.

TCP_MAXSEG

int

Ottenere un oggetto TCP la dimensione massima del segmento.

Chiamare GetSockOpt con un'opzione non supportata deriverà in un codice di errore WSAENOPROTOOPT restituito da GetLastError.

Requisiti

Header: afxsock.h

Vedere anche

Riferimenti

Classe di CAsyncSocket

Grafico della gerarchia

CAsyncSocket::SetSockOpt