Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Následující tabulky popisují možnosti SOL_SOCKET soketů. Další informace o získání a nastavení možností soketů najdete na referenčních stránkách k funkcím getsockopt a setsockopt .
K vytvoření výčtu protokolů a zjištění podporovaných vlastností pro každý nainstalovaný protokol použijte funkci WSAEnumProtocols, WSCEnumProtocols nebo WSCEnumProtocols32 .
Některé možnosti soketů vyžadují více vysvětlení, než tyto tabulky mohou sdělit; tyto možnosti obsahují odkazy na další stránky.
Note
Všechny možnosti soketů SOL_SOCKET platí stejně pro protokolY IPv4 a IPv6 (s výjimkou SO_BROADCAST, protože všesměrové vysílání není implementováno v protokolu IPv6).
Možnosti soketu SOL_SOCKET
| Option | Získat | Nastavit | Typ optval | Description |
|---|---|---|---|---|
| PVD_CONFIG | yes | yes | char [] | Neprůspatný objekt datové struktury obsahující informace o konfiguraci pro poskytovatele služeb. Tato možnost je závislá na implementaci. |
| SO_ACCEPTCONN | yes | DWORD (logická hodnota) | Vrátí, zda je soket v režimu naslouchání. Tato možnost je platná pouze pro protokoly orientované na připojení. | |
| SO_BROADCAST | yes | yes | DWORD (logická hodnota) | Nakonfigurujte soket pro odesílání dat všesměrového vysílání. Tato možnost je platná pouze pro protokoly, které podporují vysílání (NAPŘÍKLAD IPX a UDP). |
| SO_BSP_STATE | yes | CSADDR_INFO | Vrátí místní adresu, místní port, vzdálenou adresu, vzdálený port, typ soketu a protokol používaný soketem. Další informace najdete v referenčních informacích k SO_BSP_STATE . | |
| SO_CONDITIONAL_ACCEPT | yes | yes | DWORD (logická hodnota) | Označuje, jestli mají být příchozí připojení přijata nebo odmítnuta aplikací, nikoli zásobníkem protokolu. Další informace najdete v referenčních informacích k SO_CONDITIONAL_ACCEPT . |
| SO_CONNDATA | yes | yes | char [] | Další data, ne v normálním síťovém datovém proudu, která se odesílají se síťovými požadavky na navázání připojení. Tuto možnost používají starší protokoly, jako jsou DECNet, OSI TP4 a další. Tato možnost není v Windows podporována protokolem TCP/IP. |
| SO_CONNDATALEN | yes | DWORD | Délka dodatečných dat v bajtech, ne v normálním síťovém datovém proudu, která se odesílá se síťovými požadavky na navázání připojení. Tuto možnost používají starší protokoly, jako jsou DECNet, OSI TP4 a další. Tato možnost není v Windows podporována protokolem TCP/IP. | |
| SO_CONNECT_TIME | yes | DWORD | Vrátí počet sekund připojení soketu. Tato možnost je platná pouze pro protokoly orientované na připojení. | |
| SO_CONNOPT | yes | yes | char [] | Další data možností připojení, ne v normálním síťovém datovém proudu, která se odesílají se síťovými požadavky na navázání připojení. Tuto možnost používají starší protokoly, jako jsou DECNet, OSI TP4 a další. Tato možnost není v Windows podporována protokolem TCP/IP. |
| SO_CONNOPTLEN | yes | DWORD | Délka dat možností připojení v bajtech, ne v normálním síťovém datovém proudu, která se odesílají se síťovými požadavky na navázání připojení. Tuto možnost používají starší protokoly, jako jsou DECNet, OSI TP4 a další. Tato možnost není v Windows podporována protokolem TCP/IP. | |
| SO_DISCDATA | yes | yes | char [] | Další data, ne v normálním síťovém datovém proudu, která se odesílají se síťovými požadavky na odpojení připojení. Tuto možnost používají starší protokoly, jako jsou DECNet, OSI TP4 a další. Tato možnost není v Windows podporována protokolem TCP/IP. |
| SO_DISCDATALEN | yes | DWORD | Délka dalších dat v bajtech, ne v normálním síťovém datovém proudu, která se odesílá se síťovými požadavky na odpojení připojení. Tuto možnost používají starší protokoly, jako jsou DECNet, OSI TP4 a další. Tato možnost není v Windows podporována protokolem TCP/IP. | |
| SO_DISCOPT | yes | yes | char [] | Další data možností odpojení, ne v normálním síťovém datovém proudu, která se odesílají se síťovými požadavky na odpojení připojení. Tuto možnost používají starší protokoly, jako jsou DECNet, OSI TP4 a další. Tato možnost není v Windows podporována protokolem TCP/IP. |
| SO_DISCOPTLEN | yes | DWORD | Délka dodatečných dat možností odpojení v bajtech, ne v normálním síťovém datovém proudu, která se odesílají síťovými požadavky na odpojení připojení. Tuto možnost používají starší protokoly, jako jsou DECNet, OSI TP4 a další. Tato možnost není v Windows podporována protokolem TCP/IP. | |
| SO_DEBUG | yes | yes | DWORD (logická hodnota) | Povolte výstup ladění. Microsoft poskytovatelé momentálně nevypíše žádné ladicí informace. |
| SO_DONTLINGER | yes | yes | DWORD (logická hodnota) | Označuje stav l_onoff členu linger struktury přidružené k soketu. Pokud je tento člen nenulový, zůstane soket otevřený po určitou dobu po volání funkce closesocket , aby bylo možné odesílat data ve frontě. Tato možnost je platná pouze pro spolehlivé protokoly orientované na připojení. |
| SO_DONTROUTE | yes | yes | DWORD (logická hodnota) | Označuje, že odchozí data by se měla odesílat na libovolné rozhraní, na které je soket vázán, a ne na trasu v některém jiném rozhraní. Tato možnost je platná pouze pro protokoly orientované na zprávy. Microsoft poskytovatelé tuto možnost bezobslužně ignorují a vždy se obraťte na směrovací tabulku a vyhledejte odpovídající odchozí rozhraní. |
| SO_ERROR | yes | DWORD | Vrátí poslední kód chyby v tomto soketu. Tento kód chyby jednotlivých soketů není vždy nastaven okamžitě. | |
| SO_EXCLUSIVEADDRUSE | yes | yes | DWORD (logická hodnota) | Zabrání jakémukoli jinému soketu v vazbě na stejnou adresu a port. Tato možnost musí být nastavena před voláním funkce bind . Další informace najdete v referenčních informacích k SO_EXCLUSIVEADDRUSE . |
| SO_GROUP_ID | yes | bezznaménkový int | Tato možnost soketu je vyhrazená a neměla by se používat. | |
| SO_GROUP_PRIORITY | yes | yes | int | Tato možnost soketu je vyhrazená a neměla by se používat. |
| SO_KEEPALIVE | yes | yes | DWORD (logická hodnota) | Umožňuje udržování naživu pro připojení soketu. Platné pouze pro protokoly, které podporují pojem udržování (protokoly orientované na připojení). U protokolu TCP je výchozí časový limit uchování 2 hodiny a interval udržování je 1 sekunda. Výchozí počet sond udržování se liší v závislosti na verzi Windows. Další informace najdete v referenčních informacích k SO_KEEPALIVE . |
| SO_LINGER | yes | yes | linger struktury | Označuje stav struktury přetrvání přidružené k soketu. Pokud je l_onoff člen linger struktury nenulový, zůstane soket otevřený po určitou dobu po volání funkce closesocket , aby bylo možné odesílat data ve frontě. Doba, po kterou v sekundách zůstane otevřená, je určena v l_linger členu lingerové struktury. Tato možnost je platná pouze pro spolehlivé protokoly orientované na připojení. |
| SO_MAX_MSG_SIZE | yes | DWORD | Vrátí maximální velikost odchozí zprávy pro sokety orientované na zprávy podporované protokolem. Nemá žádný význam pro sokety orientované na stream. | |
| SO_MAXDG | yes | DWORD | Vrátí maximální velikost v bajtech pro odchozí datagramy podporované protokolem. Tato možnost soketu nemá žádný význam pro sokety orientované na stream. | |
| SO_MAXPATHDG | yes | DWORD | Vrátí maximální velikost v bajtech pro odchozí datagramy podporované protokolem na danou cílovou adresu. Tato možnost soketu nemá žádný význam pro sokety orientované na stream. Microsoft můžou poskytovatelé bezobslužné zacházení s tímto způsobem považovat za SO_MAXDG. | |
| SO_OOBINLINE | yes | yes | DWORD (logická hodnota) | Označuje, že nevázaných dat by se měla vracet v souladu s běžnými daty. Tato možnost je platná pouze pro protokoly orientované na připojení, které podporují nesměrová data. |
| SO_OPENTYPE | yes | yes | DWORD | Po nastavení ovlivní, jestli se další vytvořené sokety nepřekrývají. Možné hodnoty této možnosti jsou SO_SYNCHRONOUS_ALERT a SO_SYNCHRONOUS_NONALERT. Tuto možnost byste neměli používat. Místo toho použijte funkci WSASocket a nechte WSA_FLAG_OVERLAPPED bit v parametru dwFlags vypnutý. |
| SO_PAUSE_ACCEPT | yes | yes | DWORD(boolean) | Tuto možnost použijte pro naslouchání soketů. Když je tato možnost nastavená, soket reaguje na všechna příchozí připojení pomocí protokolu RST a nepřijme je. |
| SO_PORT_SCALABILITY | yes | yes | DWORD (logická hodnota) | Umožňuje škálovatelnost místního portu pro soket tím, že umožňuje maximalizovat přidělení portů přidělením portů vícekrát přidělením portů se zástupnými adresou pro různé páry portů místních adres na místním počítači. Na platformách, kde jsou k dispozici obě možnosti, raději SO_REUSE_UNICASTPORT místo této možnosti. Další informace najdete v referenčních informacích k SO_PORT_SCALABILITY . |
| SO_PROTOCOL_INFO | yes | WSAPROTOCOL_INFO | Tato možnost je definována pro možnost SO_PROTOCOL_INFOW soketu, pokud je definováno makro UNICODE. Pokud není definováno makro UNICODE, je tato možnost definována pro možnost SO_PROTOCOL_INFOA soketu. | |
| SO_PROTOCOL_INFOA | yes | WSAPROTOCOL_INFOA | Vrátí strukturu WSAPROTOCOL_INFOA pro daný soket. | |
| SO_PROTOCOL_INFOW | yes | WSAPROTOCOL_INFOW | Vrátí WSAPROTOCOL_INFOW strukturu daného soketu. | |
| SO_RANDOMIZE_PORT | yes | yes | DWORD(boolean) | Tato možnost by měla být nastavena na nevázaný soket. Při nastavení SO_RANDOMIZE_PORT a na soketu je vybraný dočasný port, je vázané náhodné číslo portu. Porty s automatickým opětovným použitím (vybrané porty pomocí SO_REUSE_UNICASTPORT) také randomizují vrácený port, takže pokud aplikace nastaví SO_REUSE_UNICASTPORT a pokusí se nastavit SO_RANDOMIZE_PORT, druhé volání setockopt selže. |
| SO_RCVBUF | yes | yes | DWORD | Celkový prostor vyrovnávací paměti pro jednotlivé sokety vyhrazený pro příjem. To nesouvisí s SO_MAX_MSG_SIZE a nemusí nutně odpovídat velikosti okna příjmu protokolu TCP. |
| SO_RCVLOWAT | yes | yes | DWORD | Možnost soketu z BSD UNIX, která je součástí zpětné kompatibility. Tato možnost nastaví minimální počet bajtů pro zpracování vstupních operací soketů. Tato možnost není podporována poskytovatelem Windows TCP/IP. Pokud se tato možnost použije u Windows Vista a později, funkce getsockopt a setsockopt selžou se službou WSAEINVAL. U starších verzí Windows tyto funkce selžou s WSAENOPROTOOPT. |
| SO_RCVTIMEO | yes | yes | DWORD | Časový limit v milisekundách pro blokování volání příjmu. Výchozí hodnota pro tuto možnost je nula, což značí, že operace příjmu nevysadí časový limit. Pokud vyprší časový limit blokujícího volání příjmu, připojení je v neurčitém stavu a mělo by být uzavřeno. Pokud je soket vytvořen pomocí WSASocket funkce, dwFlags parametr musí mít nastavený atribut WSA_FLAG_OVERLAPPED, aby časový limit fungoval správně. Jinak se časový limit nikdy neprojeví. |
| SO_REUSEADDR | yes | yes | DWORD (logická hodnota) | Umožňuje soketu svázat s adresou a portem, které se už používají. Tato možnost SO_EXCLUSIVEADDRUSE může zabránit. |
| SO_REUSE_UNICASTPORT | yes | yes | DWORD (logická hodnota) | Při nastavení povolte dočasné použití portu pro funkce připojení rozhraní API winsock, které vyžadují explicitní vazbu, například ConnectEx. Všimněte si, že funkce připojení s implicitní vazbou (například připojení bez explicitní vazby) mají tuto možnost nastavenou ve výchozím nastavení. Tuto možnost použijte místo SO_PORT_SCALABILITY na platformách, kde jsou obě dostupné. |
| SO_REUSE_MULTICASTPORT | yes | DWORD | Pokud je tato možnost nastavená na soketu, znamená to, že soket se nikdy nepoužije k příjmu paketů jednosměrového vysílání, a proto je možné jeho port sdílet s jinými aplikacemi jen pro vícesměrové vysílání. Nastavení hodnoty 1 umožňuje vždy sdílet provoz vícesměrového vysílání na portu. Nastavení hodnoty na 0 (výchozí) zakáže toto chování. | |
| SO_SNDBUF | yes | yes | DWORD | Celkový prostor vyrovnávací paměti pro jednotlivé sokety vyhrazený pro odesílání. To nesouvisí s SO_MAX_MSG_SIZE a nemusí nutně odpovídat velikosti okna odeslání protokolu TCP. |
| SO_SNDLOWAT | yes | yes | DWORD | Možnost soketu z BSD UNIX, která je součástí zpětné kompatibility. Tato možnost nastaví minimální počet bajtů pro zpracování výstupních operací soketů. Tato možnost není podporována poskytovatelem Windows TCP/IP. Pokud se tato možnost použije u Windows Vista a později, funkce getsockopt a setsockopt selžou se službou WSAEINVAL. U starších verzí Windows tyto funkce selžou s WSAENOPROTOOPT. |
| SO_SNDTIMEO | yes | yes | DWORD | Časový limit v milisekundách pro blokování volání. Výchozí hodnota pro tuto možnost je nula, což značí, že operace odeslání nevysadí časový limit. Pokud vyprší časový limit blokujícího volání, připojení je v nedeterminátu a mělo by být uzavřeno. Pokud je soket vytvořen pomocí WSASocket funkce, dwFlags parametr musí mít nastavený atribut WSA_FLAG_OVERLAPPED, aby časový limit fungoval správně. Jinak se časový limit nikdy neprojeví. |
| SO_TYPE | yes | DWORD | Vrátí typ soketu pro daný soket (například SOCK_STREAM nebo SOCK_DGRAM). | |
| SO_UPDATE_ACCEPT_CONTEXT | yes | DWORD (logická hodnota) | Tato možnost se používá s funkcí AcceptEx . Tato možnost aktualizuje vlastnosti soketu, které jsou zděděné ze soketu naslouchání. Tato možnost by měla být nastavena, pokud mají být v akceptované soketu použity funkce getpeername, getockopt, getockopt nebo setsockopt. | |
| SO_UPDATE_CONNECT_CONTEXT | yes | DWORD (logická hodnota) | Tato možnost se používá s funkcemi ConnectEx, WSAConnectByList a WSAConnectByName . Tato možnost aktualizuje vlastnosti soketu po navázání připojení. Tato možnost by se měla nastavit, pokud se funkce getpeername, getockname, getockopt, setsockopt nebo shutdown mají používat na připojeném soketu. | |
| SO_USELOOPBACK | yes | yes | DWORD (logická hodnota) | Při odesílání dat z tohoto soketu použijte adresu zpětné místní smyčky. Tato možnost by se měla použít jenom v případě, že se budou místně přijímat všechna odeslaná data. Tato možnost není podporována poskytovatelem Windows TCP/IP. Pokud se tato možnost použije u Windows Vista a později, funkce getsockopt a setsockopt selžou se službou WSAEINVAL. U starších verzí Windows tyto funkce selžou s WSAENOPROTOOPT. |
podpora Windows možností SOL_SOCKET
| Option | Systém Windows 10 | Windows 7 | Systém Windows Server 2008 | Windows Vista | Systém Windows Server 2003 | Windows XP | Systém Windows 2000 | Windows NT4 | Windows 9x/ME |
|---|---|---|---|---|---|---|---|---|---|
| PVD_CONFIG | |||||||||
| SO_ACCEPTCONN | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_BROADCAST | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_BSP_STATE | yes | yes | yes | yes | |||||
| SO_CONDITIONAL_ACCEPT | yes | yes | yes | yes | yes | yes | yes | ||
| SO_CONNDATA | yes | yes | yes | yes | yes | yes | yes | yes | |
| SO_CONNDATALEN | yes | yes | yes | yes | yes | yes | yes | yes | |
| SO_CONNECT_TIME | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_CONNOPT | yes | yes | yes | yes | yes | yes | yes | yes | |
| SO_CONNOPTLEN | yes | yes | yes | yes | yes | yes | yes | yes | |
| SO_DISCDATA | yes | yes | yes | yes | yes | yes | yes | yes | |
| SO_DISCDATALEN | yes | yes | yes | yes | yes | yes | yes | yes | |
| SO_DISCOPT | yes | yes | yes | yes | yes | yes | yes | yes | |
| SO_DISCOPTLEN | yes | yes | yes | yes | yes | yes | yes | yes | |
| SO_DEBUG | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_DONTLINGER | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_DONTROUTE | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_ERROR | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_EXCLUSIVEADDRUSE | yes | yes | yes | yes | yes | yes | yes | Ano SP4+ | |
| SO_GROUP_ID | yes | yes | yes | yes | |||||
| SO_GROUP_PRIORITY | yes | yes | yes | yes | |||||
| SO_KEEPALIVE | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_LINGER | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_MAX_MSG_SIZE | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_MAXDG | yes | yes | yes | yes | yes | yes | yes | ||
| SO_MAXPATHDG | yes | yes | yes | yes | yes | yes | yes | ||
| SO_OOBINLINE | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_OPENTYPE | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_PORT_SCALABILITY | yes | yes | yes | ||||||
| SO_PROTECT | yes | ||||||||
| SO_PROTOCOL_INFO | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_PROTOCOL_INFOA | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_PROTOCOL_INFOW | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_RCVBUF | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_RCVLOWAT | |||||||||
| SO_RCVTIMEO | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_RANDOMIZE_PORT | yes | yes | yes | yes | |||||
| SO_REUSEADDR | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_REUSE_UNICASTPORT | yes | ||||||||
| SO_REUSE_MULTICASTPORT | yes | ||||||||
| SO_SNDBUF | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_SNDLOWAT | |||||||||
| SO_SNDTIMEO | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_TYPE | yes | yes | yes | yes | yes | yes | yes | yes | yes |
| SO_UPDATE_ACCEPT_CONTEXT | yes | yes | yes | yes | yes | yes | yes | yes | |
| SO_UPDATE_CONNECT_CONTEXT | yes | yes | yes | yes | yes | yes | |||
| SO_USELOOPBACK |
Remarks
Možnosti SOL_SOCKET soketu jsou definovány v několika souborech hlaviček rozhraní Winsock:
- Winsock2.h
- Mswsock.h
- Ws2def.h
V sadě Microsoft Windows Software Development Kit (SDK) vydané pro Windows Vista a později se organizace hlaviček souborů změnila a SOL_SOCKET úroveň je definována v souboru hlaviček Ws2def.h, který se automaticky zahrne do souboru hlaviček Winsock2.h. Některé možnosti soketu SOL_SOCKET jsou definovány v souborech hlaviček Winsock2.h a Mswsock.h . Zbývající SOL_SOCKET možnosti soketu jsou definovány v souboru záhlaví Ws2def.h , který je automaticky zahrnut do souboru záhlaví Winsock2.h . Ws2def.h by nikdy neměl být použit přímo.
Na platformě Software Development Kit (SDK) vydané pro Windows Server 2003 a Windows XP je úroveň SOL_SOCKET definována v souboru hlaviček Winsock2.h. Možnosti SOL_SOCKET soketu jsou definovány v souborech hlaviček Winsock2.h a Mswsock.h .
Requirements
| Requirement | Hodnota |
|---|---|
| Záhlaví |
|