SocketOptionName Wyliczenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Definiuje nazwy opcji konfiguracji.
public enum class SocketOptionName
public enum SocketOptionName
type SocketOptionName =
Public Enum SocketOptionName
- Dziedziczenie
Pola
| Nazwa | Wartość | Opis |
|---|---|---|
| DontLinger | -129 | Zamknij gniazdo z wdziękiem bez utrzymującego się. |
| ExclusiveAddressUse | -5 | Umożliwia powiązanie gniazda w celu uzyskania wyłącznego dostępu. |
| Debug | 1 | Rejestruj informacje o debugowaniu. |
| IPOptions | 1 | Określa opcje adresów IP, które mają być wstawione do wychodzących datagramów. |
| NoChecksum | 1 | Wyślij datagramy UDP z sumą kontrolną ustawioną na zero. |
| NoDelay | 1 | Wyłącza algorytm Nagle na potrzeby łączenia. |
| AcceptConnection | 2 | Gniazdo nasłuchuje. |
| BsdUrgent | 2 | Użyj pilnych danych zgodnie z definicją w dokumencie RFC-1222. Tę opcję można ustawić tylko raz; po jego ustawieniu nie można go wyłączyć. |
| Expedited | 2 | Użyj przyspieszonych danych zgodnie z definicją w dokumencie RFC-1222. Tę opcję można ustawić tylko raz; po jego ustawieniu nie można go wyłączyć. |
| HeaderIncluded | 2 | Wskazuje, że aplikacja udostępnia nagłówek IP wychodzących datagramów. |
| TcpKeepAliveTime | 3 | Liczba sekund, przez które połączenie TCP pozostanie aktywne/bezczynne, zanim sondy keepalive zostaną wysłane do zdalnego. |
| TypeOfService | 3 | Zmień typ nagłówka adresu IP pola usługi. |
| IpTimeToLive | 4 | Ustaw pole Time-to-Live nagłówka IP. |
| ReuseAddress | 4 | Umożliwia powiązanie gniazda z adresem, który jest już używany. |
| KeepAlive | 8 | Używaj funkcji keep-alives. |
| MulticastInterface | 9 | Ustaw interfejs dla wychodzących pakietów multiemisji. |
| MulticastTimeToLive | 10 | Czas multiemisji IP na żywo. |
| MulticastLoopback | 11 | Sprzężenia zwrotnego multiemisji IP. |
| AddMembership | 12 | Dodaj członkostwo w grupie adresów IP. |
| DropMembership | 13 | Porzucanie członkostwa w grupie adresów IP. |
| DontFragment | 14 | Nie fragmentuj datagramów adresów IP. |
| AddSourceMembership | 15 | Dołącz do grupy źródłowej. |
| FastOpen | 15 | Włącza protokół TCP Fast Open zgodnie z definicją w dokumencie RFC-7413. Rzeczywiste zaobserwowane zachowanie zależy od konfiguracji systemu operacyjnego i stanu pamięci podręcznej plików cookie TCP jądra. Korzystanie z serwera TFO jest zalecane tylko w kontrolowanych środowiskach sieciowych, co oznacza, że każda skrzynka pośrednicząca (na przykład zapora, router, serwer proxy) na ścieżce sieciowej między klientem a serwerem jest znana i może być skonfigurowana do obsługi serwera TFO. Korzystanie z serwera TFO poza kontrolowanymi środowiskami (takimi jak otwarty Internet) może prowadzić do problemów z łącznością. |
| DontRoute | 16 | Nie należy kierować; wyślij pakiet bezpośrednio do adresów interfejsu. |
| DropSourceMembership | 16 | Usuwanie grupy źródłowej. |
| TcpKeepAliveRetryCount | 16 | Liczba sond utrzymywania aktywności protokołu TCP, które zostaną wysłane przed zakończeniem połączenia. |
| BlockSource | 17 | Blokuj dane ze źródła. |
| TcpKeepAliveInterval | 17 | Liczba sekund, przez które połączenie TCP będzie czekać na odpowiedź na czas utrzymania przed wysłaniem kolejnej sondy keepalive. |
| UnblockSource | 18 | Odblokuj wcześniej zablokowane źródło. |
| PacketInformation | 19 | Zwraca informacje o odebranych pakietach. |
| ChecksumCoverage | 20 | Ustaw lub pobierz pokrycie sumy kontrolnej UDP. |
| HopLimit | 21 | Określa maksymalną liczbę przeskoków routera dla pakietu protokołu internetowego w wersji 6 (IPv6). Jest to podobne do czasu wygaśnięcia (TTL) dla protokołu internetowego w wersji 4. |
| IPProtectionLevel | 23 | Umożliwia ograniczenie gniazda IPv6 do określonego zakresu, takich jak adresy z tym samym linkiem lokalnego lub lokalnego prefiksu lokacji. Ta opcja gniazda umożliwia aplikacjom umieszczanie ograniczeń dostępu do gniazd IPv6. Takie ograniczenia umożliwiają aplikacji działającej w prywatnej sieci LAN proste i niezawodne wzmacnianie się przed atakami zewnętrznymi. Ta opcja gniazda rozszerza lub zawęża zakres gniazda nasłuchiwania, umożliwiając nieograniczony dostęp od użytkowników publicznych i prywatnych, jeśli jest to konieczne, lub ograniczenie dostępu tylko do tej samej lokacji, co jest wymagane. Ta opcja gniazda ma zdefiniowane poziomy ochrony określone w wyliczenie IPProtectionLevel . |
| IPv6Only | 27 | Wskazuje, czy gniazdo utworzone dla rodziny adresów AF_INET6 jest ograniczone tylko do komunikacji IPv6. Gniazda utworzone dla rodziny adresów AF_INET6 mogą być używane zarówno do komunikacji IPv6, jak i IPv4. Niektóre aplikacje mogą chcieć ograniczyć użycie gniazda utworzonego dla rodziny adresów AF_INET6 tylko do komunikacji IPv6. Jeśli ta wartość jest inna niż zero (domyślna dla Windows), gniazdo utworzone dla rodziny adresów AF_INET6 może służyć do wysyłania i odbierania tylko pakietów IPv6. Gdy ta wartość jest równa zero, można użyć gniazda utworzonego dla rodziny adresów AF_INET6 do wysyłania i odbierania pakietów do i z adresu IPv6 lub adresu IPv4. Należy pamiętać, że możliwość interakcji z adresem IPv4 wymaga użycia zamapowanych adresów IPv4. Ta opcja gniazda jest obsługiwana w Windows Vista lub nowszym. |
| Broadcast | 32 | Zezwalaj na wysyłanie komunikatów rozgłaszanych w gniazdach. |
| UseLoopback | 64 | Pomiń sprzęt, jeśli to możliwe. |
| Linger | 128 | Utrzymaj się blisko, jeśli nie są obecne dane. |
| OutOfBandInline | 256 | Odbiera dane poza pasmem w normalnym strumieniu danych. |
| SendBuffer | 4097 | Określa łączną ilość miejsca buforu dla gniazda zarezerwowanego dla wysyłania. Nie ma to związku z maksymalnym rozmiarem komunikatu lub rozmiarem okna TCP. |
| ReceiveBuffer | 4098 | Określa łączną ilość miejsca buforu dla gniazda zarezerwowanego dla odbieranych. Nie ma to związku z maksymalnym rozmiarem komunikatu lub rozmiarem okna TCP. |
| SendLowWater | 4099 | Określa niski znacznik wody dla Send operacji. |
| ReceiveLowWater | 4100 | Określa niski znacznik wody dla Receive operacji. |
| SendTimeout | 4101 | Wyślij limit czasu. Ta opcja dotyczy tylko metod synchronicznych; nie ma wpływu na metody asynchroniczne, takie jak BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) metoda. |
| ReceiveTimeout | 4102 | Otrzymuj limit czasu. Ta opcja dotyczy tylko metod synchronicznych; nie ma wpływu na metody asynchroniczne, takie jak BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object) metoda. |
| Error | 4103 | Pobiera stan błędu i czyści. |
| Type | 4104 | Pobiera typ gniazda. |
| ReuseUnicastPort | 12295 | Wskazuje, że system powinien odroczyć alokację portów efemerycznych dla połączeń wychodzących. Jest to równoważne użyciu opcji gniazda SO_REUSE_UNICASTPORT Winsock2. |
| UpdateAcceptContext | 28683 | Aktualizuje zaakceptowane właściwości gniazda przy użyciu tych z istniejącego gniazda. Jest to równoważne użyciu opcji gniazda SO_UPDATE_ACCEPT_CONTEXT Winsock2 i jest obsługiwane tylko w gniazdach zorientowanych na połączenie. |
| UpdateConnectContext | 28688 | Aktualizuje właściwości połączonego gniazda przy użyciu tych z istniejącego gniazda. Jest to równoważne z użyciem opcji gniazda SO_UPDATE_CONNECT_CONTEXT Winsock2 i jest obsługiwane tylko w gniazdach zorientowanych na połączenie. |
| MaxConnections | 2147483647 | Nieobsługiwane; wyrzuci wartość SocketException w przypadku użycia. |
Przykłady
W poniższym przykładzie kodu użyto tej wyliczenia w celu ustawienia opcji gniazda.
// The socket will linger for 10 seconds after Socket.Close is called.
var lingerOption = new LingerOption(true, 10);
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption);
' The socket will linger for 10 seconds after Socket.Close is called.
Dim lingerOption As New LingerOption(True, 10)
s.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, lingerOption)
Uwagi
Wyliczenie SocketOptionName definiuje nazwę każdej Socket opcji konfiguracji. Gniazda można skonfigurować za Socket.SetSocketOption pomocą metody .