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