Udostępnij za pośrednictwem


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

Zobacz też

Informacje

Klasa CAsyncSocket

Diagram hierarchii

CAsyncSocket::SetSockOpt