CAsyncSocket::GetSockOpt
Wywołanie tej funkcji Członkowskich pobrać opcji gniazda.
BOOL GetSockOpt(
int nOptionName,
void* lpOptionValue,
int* lpOptionLen,
int nLevel = SOL_SOCKET
);
Parametry
nOptionName
Opcja gniazda, dla którego ma być pobrana wartość.lpOptionValue
Wskaźnik do bufora, w którym jest zwracane wartości dla żądanej opcji.Wartość skojarzona z zaznaczonej opcji jest zwracany w buforze lpOptionValue.Liczba całkowita wskazywana przez lpOptionLen powinien zawierać pierwotnie rozmiar tego bufora, w bajtach; i na powrót, zostanie ustawiony rozmiar wartości zwracanej.Dla SO_LINGER, będzie to rozmiar LINGER struktury; dla wszystkich innych opcji będą rozmiar BOOL lub int, w zależności od opcji.Zobacz listę opcji i ich rozmiary w sekcji Uwagi.lpOptionLen
Wskaźnik do rozmiaru lpOptionValue buforu w bajtach.nLevel
Poziom, na którym jest zdefiniowana opcja; tylko poziomy obsługiwane są SOL_SOCKET i IPPROTO_TCP.
Wartość zwracana
Niezerowa, jeśli funkcja jest pomyślne; w przeciwnym razie 0 i kod błędu mogą być pobierane przez wywołanie GetLastError.Jeśli nigdy nie ustawiono opcję z SetSockOpt, następnie GetSockOpt , zwraca domyślną wartość dla opcji.Do tej funkcji Członkowskich stosuje się następujące błędy:
WSANOTINITIALISED pomyślnie AfxSocketInit musi wystąpić przed użyciem tego interfejsu API.
WSAENETDOWN implementacja Windows Sockets wykrył, że podsystem sieci nie powiodło się.
WSAEFAULTlpOptionLen argument był nieprawidłowy.
WSAEINPROGRESS jest wykonywana operacja blokująca Windows Sockets.
WSAENOPROTOOPT opcji jest nieznany lub nieobsługiwany.W szczególności SO_BROADCAST nie jest obsługiwana na gniazd typu SOCK_STREAM, podczas gdy SO_ACCEPTCONN, SO_DONTLINGER, SO_KEEPALIVE, SO_LINGER, i SO_OOBINLINE nie są obsługiwane w gniazdach typu SOCK_DGRAM.
WSAENOTSOCK deskryptora nie jest gniazdem.
Uwagi
GetSockOptpobiera bieżącą wartość opcji gniazda skojarzonych z gniazdem dowolnego typu, w każdym Państwie i zapisuje wynik w lpOptionValue.Opcje dotyczą operacji gniazda, takich jak routing pakietów, transfer danych-band itd.
Następujące opcje są obsługiwane dla GetSockOpt.Typ identyfikuje typ danych przez lpOptionValue.TCP_NODELAY opcji używa poziomu IPPROTO_TCP; inne opcje używany poziom SOL_SOCKET.
Wartość |
Typ |
Znaczenie |
---|---|---|
SO_ACCEPTCONN |
BOOL |
Gniazdo nasłuchuje. |
SO_BROADCAST |
BOOL |
Socket jest skonfigurowany do przekazywania komunikatów emisji. |
SO_DEBUG |
BOOL |
Debugowanie jest włączone. |
SO_DONTLINGER |
BOOL |
Jeśli true, SO_LINGER opcja jest wyłączona. |
SO_DONTROUTE |
BOOL |
Routing jest wyłączony. |
SO_ERROR |
int |
Pobierz stan błędu i wyczyść. |
SO_KEEPALIVE |
BOOL |
Keep-alives są wysyłane. |
SO_LINGER |
struct LINGER |
Zwraca bieżące opcje linger. |
SO_OOBINLINE |
BOOL |
-Band danych jest odbierany w strumieniu danych normalnego. |
SO_RCVBUF |
int |
Rozmiar buforu dla odbiera. |
SO_REUSEADDR |
BOOL |
Gniazda można powiązać z adresu, który jest już używany. |
SO_SNDBUF |
int |
Rozmiar buforu dla wysyła. |
SO_TYPE |
int |
Typ gniazda (na przykład SOCK_STREAM). |
TCP_NODELAY |
BOOL |
Wyłącza wysyłanie odbiorczego algorytm Nagle'a. |
Opcje / Hosts systemu nie jest obsługiwane dla GetSockOpt są:
Wartość |
Typ |
Znaczenie |
---|---|---|
SO_RCVLOWAT |
int |
Otrzymywać znaku niskiej wody. |
SO_RCVTIMEO |
int |
Otrzymywać limitu czasu. |
SO_SNDLOWAT |
int |
Wyślij znaku niskiej wody. |
SO_SNDTIMEO |
int |
Limit czasu wysyłania. |
IP_OPTIONS |
|
Opcje Pobierz w nagłówku IP. |
TCP_MAXSEG |
int |
Pobierz TCP maksymalny rozmiar segmentu. |
Wywołanie GetSockOpt z nieobsługiwana opcja spowoduje błąd o kodzie WSAENOPROTOOPT są zwracane z GetLastError.
Wymagania
Nagłówek: afxsock.h