Sdílet prostřednictvím


CAsyncSocket::GetSockOpt

Volání této funkce členů načíst možnosti soketu.

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

Parametry

  • nOptionName
    Možnost soketu, jehož hodnota je k načtení.

  • lpOptionValue
    Ukazatel do vyrovnávací paměti, která má být vrácena hodnotu požadované možnosti.Ve vyrovnávací paměti je vrácena hodnota spojené s vybranou volbu lpOptionValue .Celé číslo odkazuje lpOptionLen by měl obsahovat původně velikost této vyrovnávací paměti v bajtech; a při návratu, nastaví se velikosti vrácená hodnota.Pro SO_LINGER, bude velikost LINGER struktury; pro všechny možnosti bude velikost BOOL nebo int v závislosti na požadovanou možnost.Zobrazit seznam možností a jejich velikosti, v části poznámky.

  • lpOptionLen
    Velikost ukazatele lpOptionValue vyrovnávací paměti v bajtech.

  • nLevel
    Úroveň, při které je definována možnost; pouze podporované úrovně jsou SOL_SOCKET a IPPROTO_TCP.

Vrácená hodnota

Nenulová hodnota, pokud je tato funkce úspěšná. jinak 0 a kód chyby může být načten voláním GetLastError.Pokud je možnost nastavena nikdy s SetSockOpt , pak GetSockOpt vrátí hodnotu výchozí možnost.Tato funkce člena vztahuje následující chyby:

  • WSANOTINITIALISED úspěšné AfxSocketInit musí dojít před použitím tohoto rozhraní API.

  • WSAENETDOWN implementace rozhraní Windows Sockets zjistil, že selhání síťového podsystému.

  • WSAEFAULT lpOptionLen argument byl neplatný.

  • WSAEINPROGRESS právě probíhá blokující operace rozhraní Windows Sockets.

  • WSAENOPROTOOPT možnost je neznámý nebo nepodporovaný.Zejména SO_BROADCAST není podporována na soketech typu SOCK_STREAM, zatímco SO_ACCEPTCONN, SO_DONTLINGER, SO_KEEPALIVE, SO_LINGER, a SO_OOBINLINE nejsou podporovány na soketech typu SOCK_DGRAM.

  • WSAENOTSOCK popisovač není soket.

Poznámky

GetSockOptaktuální hodnotu soketu možnosti přidružený k soketu libovolného typu v kterémkoli státě načítá a ukládá výsledek v lpOptionValue .Možnosti ovlivňují operace soketu, například směrování paketů, přenos dat-band atd.

Jsou podporovány následující možnosti pro GetSockOpt .Typ určuje typ dat, které jsou adresovány lpOptionValue .TCP_NODELAY možnost používá úroveň IPPROTO_TCP; Další možnosti použít úroveň SOL_SOCKET.

Value

Type

Význam

SO_ACCEPTCONN

BOOL

Je naslouchání soketu.

SO_BROADCAST

BOOL

Soket je nakonfigurován pro přenos zpráv všesměrového vysílání.

SO_DEBUG

BOOL

Je povoleno ladění.

SO_DONTLINGER

BOOL

Hodnota TRUE znamená, SO_LINGER možnost zakázána.

SO_DONTROUTE

BOOL

Je zakázáno směrování.

SO_ERROR

int

Načíst stav chyby a zrušte.

SO_KEEPALIVE

BOOL

Udržování jsou odesílány.

SO_LINGER

Struktura LINGER

Vrátí aktuální možnosti linger.

SO_OOBINLINE

BOOL

V normálním datový proud je přijímáno Out-of-band data.

ASYNCHRONNÍ

int

Velikost vyrovnávací paměti pro obdrží.

SO_REUSEADDR

BOOL

Soket mohou být vázány na adresu, která je již používán.

SO_SNDBUF

int

Velikost vyrovnávací paměti pro odešle.

SO_TYPE

int

Typ soketu (například SOCK_STREAM).

TCP_NODELAY

BOOL

Zakáže Nagle algoritmus pro odesílání coalescing.

Možnosti Berkeley Software Distribution (BSD) není podporováno pro GetSockOpt jsou:

Value

Type

Význam

SO_RCVLOWAT

int

Zobrazit značku málo vody.

SO_RCVTIMEO

int

Zobrazit časový limit.

SO_SNDLOWAT

int

Odešlete značka málo vody.

SO_SNDTIMEO

int

Časový limit odeslání.

IP_OPTIONS

 

Možnosti získáte v hlavičce protokolu IP.

TCP_MAXSEG

int

Získáte TCP maximální velikost segmentu.

Volání GetSockOpt s Nepodporovaná možnost výsledkem bude kód chyby WSAENOPROTOOPT vracené z GetLastError .

Požadavky

Záhlaví: afxsock.h

Viz také

Referenční dokumentace

Třída CAsyncSocket

Diagram hierarchie

CAsyncSocket::SetSockOpt