SOL_SOCKET Socket-opties

In de volgende tabellen worden SOL_SOCKET socketopties beschreven. Zie de referentiepagina's voor de getsockopt - en setsockopt-functie voor meer informatie over het ophalen en instellen van socketopties.

Als u protocollen wilt inventariseren en ondersteunde eigenschappen voor elk geïnstalleerd protocol wilt detecteren, gebruikt u de functie WSAEnumProtocols, WSCEnumProtocols of WSCEnumProtocols32 .

Voor sommige socketopties is meer uitleg vereist dan deze tabellen kunnen overbrengen; dergelijke opties bevatten koppelingen naar extra pagina's.

Note

Alle SOL_SOCKET socketopties zijn evenzeer van toepassing op IPv4 en IPv6 (met uitzondering van SO_BROADCAST, omdat broadcast niet is geïmplementeerd in IPv6).

 

SOL_SOCKET Socket-opties

Option Ophalen Set Type optval Description
PVD_CONFIG yes yes char [] Een ondoorzichtig gegevensstructuurobject met configuratiegegevens voor de serviceprovider. Deze optie is afhankelijk van de implementatie.
SO_ACCEPTCONN yes DWORD (Booleaanse waarde) Retourneert of een socket zich in de luistermodus bevindt. Deze optie is alleen geldig voor verbindingsprotocollen.
SO_BROADCAST yes yes DWORD (Booleaanse waarde) Configureer een socket voor het verzenden van broadcastgegevens. Deze optie is alleen geldig voor protocollen die bijvoorbeeld ondersteuning bieden voor uitzending (IPX en UDP).
SO_BSP_STATE yes CSADDR_INFO Retourneert het lokale adres, de lokale poort, het externe adres, de externe poort, het sockettype en het protocol dat door een socket wordt gebruikt. Zie de SO_BSP_STATE-verwijzing voor meer informatie.
SO_CONDITIONAL_ACCEPT yes yes DWORD (Booleaanse waarde) Geeft aan of binnenkomende verbindingen moeten worden geaccepteerd of geweigerd door de toepassing, niet door de protocolstack. Zie de SO_CONDITIONAL_ACCEPT-verwijzing voor meer informatie.
SO_CONNDATA yes yes char [] Aanvullende gegevens, niet in de normale netwerkgegevensstroom, die worden verzonden met netwerkaanvragen om een verbinding tot stand te brengen. Deze optie wordt gebruikt door verouderde protocollen zoals DECNet, OSI TP4 en andere. Deze optie wordt niet ondersteund door het TCP/IP-protocol in Windows.
SO_CONNDATALEN yes DWORD De lengte, in bytes, van aanvullende gegevens, niet in de normale netwerkgegevensstroom, die wordt verzonden met netwerkaanvragen om een verbinding tot stand te brengen. Deze optie wordt gebruikt door verouderde protocollen zoals DECNet, OSI TP4 en andere. Deze optie wordt niet ondersteund door het TCP/IP-protocol in Windows.
SO_CONNECT_TIME yes DWORD Retourneert het aantal seconden dat een socket is aangesloten. Deze optie is alleen geldig voor verbindingsgeoriënteerde protocollen.
SO_CONNOPT yes yes char [] Aanvullende verbindingsoptiegegevens, niet in de normale netwerkgegevensstroom, die worden verzonden met netwerkaanvragen om een verbinding tot stand te brengen. Deze optie wordt gebruikt door verouderde protocollen zoals DECNet, OSI TP4 en andere. Deze optie wordt niet ondersteund door het TCP/IP-protocol in Windows.
SO_CONNOPTLEN yes DWORD De lengte, in bytes, van verbindingsoptiegegevens, niet in de normale netwerkgegevensstroom, die wordt verzonden met netwerkaanvragen om een verbinding tot stand te brengen. Deze optie wordt gebruikt door verouderde protocollen zoals DECNet, OSI TP4 en andere. Deze optie wordt niet ondersteund door het TCP/IP-protocol in Windows.
SO_DISCDATA yes yes char [] Aanvullende gegevens, niet in de normale netwerkgegevensstroom, die worden verzonden met netwerkaanvragen om een verbinding te verbreken. Deze optie wordt gebruikt door verouderde protocollen zoals DECNet, OSI TP4 en andere. Deze optie wordt niet ondersteund door het TCP/IP-protocol in Windows.
SO_DISCDATALEN yes DWORD De lengte, in bytes, van extra gegevens, niet in de normale netwerkgegevensstroom, die wordt verzonden met netwerkaanvragen om een verbinding te verbreken. Deze optie wordt gebruikt door verouderde protocollen zoals DECNet, OSI TP4 en andere. Deze optie wordt niet ondersteund door het TCP/IP-protocol in Windows.
SO_DISCOPT yes yes char [] Aanvullende optiegegevens voor de verbinding verbreken, niet in de normale netwerkgegevensstroom, die wordt verzonden met netwerkaanvragen om een verbinding te verbreken. Deze optie wordt gebruikt door verouderde protocollen zoals DECNet, OSI TP4 en andere. Deze optie wordt niet ondersteund door het TCP/IP-protocol in Windows.
SO_DISCOPTLEN yes DWORD De lengte, in bytes, van aanvullende optiegegevens voor verbinding verbreken, niet in de normale netwerkgegevensstroom, die wordt verzonden met netwerkaanvragen om een verbinding te verbreken. Deze optie wordt gebruikt door verouderde protocollen zoals DECNet, OSI TP4 en andere. Deze optie wordt niet ondersteund door het TCP/IP-protocol in Windows.
SO_DEBUG yes yes DWORD (Booleaanse waarde) Schakel uitvoer voor foutopsporing in. Microsoft providers voeren momenteel geen foutopsporingsgegevens uit.
SO_DONTLINGER yes yes DWORD (Booleaanse waarde) Geeft de status aan van het l_onoff lid van de lingerstructuur die is gekoppeld aan een socket. Als dit lid niet-nul is, blijft een socket gedurende een opgegeven tijd geopend na een closesocket-functieaanroep om ervoor te zorgen dat gegevens in de wachtrij kunnen worden verzonden. Deze optie is alleen geldig voor betrouwbare, verbindingsgeoriënteerde protocollen.
SO_DONTROUTE yes yes DWORD (Booleaanse waarde) Geeft aan dat uitgaande gegevens moeten worden verzonden op de interface waaraan de socket is gebonden en niet op een andere interface. Deze optie is alleen geldig voor berichtengeoriënteerde protocollen. Microsoft providers deze optie op de achtergrond negeren en altijd de routeringstabel raadplegen om de juiste uitgaande interface te vinden.
SO_ERROR yes DWORD Retourneert de laatste foutcode op deze socket. Deze foutcode per socket is niet altijd onmiddellijk ingesteld.
SO_EXCLUSIVEADDRUSE yes yes DWORD (Booleaanse waarde) Hiermee voorkomt u dat andere sockets worden gebonden aan hetzelfde adres en dezelfde poort. Deze optie moet worden ingesteld voordat u de bindingsfunctie aanroept. Zie de SO_EXCLUSIVEADDRUSE-verwijzing voor meer informatie.
SO_GROUP_ID yes niet-ondertekende int Deze socketoptie is gereserveerd en mag niet worden gebruikt.
SO_GROUP_PRIORITY yes yes int Deze socketoptie is gereserveerd en mag niet worden gebruikt.
SO_KEEPALIVE yes yes DWORD (Booleaanse waarde) Hiermee schakelt u keep-alive in voor een socketverbinding. Alleen geldig voor protocollen die ondersteuning bieden voor het begrip keep-alive (verbindingsprotocollen). Voor TCP is de standaard time-out voor keep alive 2 uur en is het interval voor keep alive 1 seconde. Het standaardaantal keep-alive-tests varieert op basis van de versie van Windows. Zie de SO_KEEPALIVE referentie voor meer informatie.
SO_LINGER yes yes struct linger Geeft de status aan van de lingerstructuur die is gekoppeld aan een socket. Als het l_onoff lid van de linger-structuur niet-nul is, blijft een socket gedurende een opgegeven tijd open na een closesocket-functieaanroep om in de wachtrij geplaatste gegevens te kunnen verzenden. De hoeveelheid tijd, in seconden, die open moet blijven, wordt opgegeven in het l_linger lid van de linger-structuur . Deze optie is alleen geldig voor betrouwbare, verbindingsgeoriënteerde protocollen.
SO_MAX_MSG_SIZE yes DWORD Retourneert de maximale grootte van uitgaande berichten voor berichtgeoriënteerde sockets die door het protocol worden ondersteund. Heeft geen betekenis voor streamgeoriënteerde sockets.
SO_MAXDG yes DWORD Retourneert de maximale grootte, in bytes, voor uitgaande datagrammen die door het protocol worden ondersteund. Deze socketoptie heeft geen betekenis voor stroomgeoriënteerde sockets.
SO_MAXPATHDG yes DWORD Retourneert de maximale grootte, in bytes, voor uitgaande datagrammen die door het protocol worden ondersteund naar een bepaald doeladres. Deze socketoptie heeft geen betekenis voor stroomgeoriënteerde sockets. Microsoft providers kunnen dit op de achtergrond behandelen als SO_MAXDG.
SO_OOBINLINE yes yes DWORD (Booleaanse waarde) Hiermee wordt aangegeven dat niet-gebonden gegevens moeten worden geretourneerd in overeenstemming met reguliere gegevens. Deze optie is alleen geldig voor verbindingsprotocollen die out-of-band-gegevens ondersteunen.
SO_OPENTYPE yes yes DWORD Zodra de set is ingesteld, is dit van invloed op de vraag of volgende sockets die worden gemaakt, niet overlappend zijn. De mogelijke waarden voor deze optie zijn SO_SYNCHRONOUS_ALERT en SO_SYNCHRONOUS_NONALERT. Deze optie mag niet worden gebruikt. Gebruik in plaats daarvan de functie WSASocket en laat de WSA_FLAG_OVERLAPPED bit in de dwFlags-parameter uitgeschakeld.
SO_PAUSE_ACCEPT yes yes DWORD(booleaanse waarde) Gebruik deze optie voor het luisteren naar sockets. Wanneer de optie is ingesteld, reageert de socket op alle binnenkomende verbindingen met een RST in plaats van deze te accepteren.
SO_PORT_SCALABILITY yes yes DWORD (Booleaanse waarde) Maakt schaalbaarheid van lokale poorten mogelijk voor een socket doordat poorttoewijzing kan worden gemaximaliseerd door meerdere keren jokertekenpoorten toe te wijzen voor verschillende lokale adrespoortparen op een lokale computer. Op platforms waar beide opties beschikbaar zijn, geeft u de voorkeur aan SO_REUSE_UNICASTPORT in plaats van deze optie. Zie de SO_PORT_SCALABILITY-verwijzing voor meer informatie.
SO_PROTOCOL_INFO yes WSAPROTOCOL_INFO Deze optie wordt gedefinieerd voor de SO_PROTOCOL_INFOW socketoptie als de UNICODE-macro is gedefinieerd. Als de UNICODE-macro niet is gedefinieerd, wordt deze optie gedefinieerd voor de SO_PROTOCOL_INFOA socketoptie.
SO_PROTOCOL_INFOA yes WSAPROTOCOL_INFOA Retourneert de WSAPROTOCOL_INFOA structuur voor de opgegeven socket
SO_PROTOCOL_INFOW yes WSAPROTOCOL_INFOW Retourneert de WSAPROTOCOL_INFOW structuur voor de opgegeven socket
SO_RANDOMIZE_PORT yes yes DWORD(booleaanse waarde) Deze optie moet worden ingesteld op een niet-afhankelijke socket. Wanneer SO_RANDOMIZE_PORT is ingesteld en er een tijdelijke poort op de socket is geselecteerd, is een willekeurig poortnummer gebonden. Automatisch opnieuw gebruiken van poorten (poorten geselecteerd met SO_REUSE_UNICASTPORT) willekeurig de geretourneerde poort, dus als een toepassing SO_REUSE_UNICASTPORT instelt en vervolgens SO_RANDOMIZE_PORT probeert in te stellen, mislukt de tweede setsockopt-aanroep .
SO_RCVBUF yes yes DWORD De totale bufferruimte per socket die is gereserveerd voor ontvangst. Dit is niet gerelateerd aan SO_MAX_MSG_SIZE en komt niet noodzakelijkerwijs overeen met de grootte van het TCP-ontvangstvenster.
SO_RCVLOWAT yes yes DWORD Een socketoptie van BSD UNIX opgenomen voor achterwaartse compatibiliteit. Met deze optie stelt u het minimum aantal bytes in dat moet worden verwerkt voor socketinvoerbewerkingen. Deze optie wordt niet ondersteund door de Windows TCP/IP-provider. Als deze optie wordt gebruikt voor Windows Vista en hoger, mislukken de functies getsockopt en setsockopt met WSAEINVAL. In eerdere versies van Windows mislukken deze functies met WSAENOPROTOOPT.
SO_RCVTIMEO yes yes DWORD De time-out, in milliseconden, voor het blokkeren van oproepen voor het ontvangen van oproepen. De standaardwaarde voor deze optie is nul, wat aangeeft dat er geen time-out optreedt voor een ontvangstbewerking. Als er een time-out optreedt voor een blokkerende ontvangstoproep, heeft de verbinding een onbepaalde status en moet deze worden gesloten.
Als de socket wordt gemaakt met behulp van de functie WSASocket , moet de parameter dwFlags het kenmerk WSA_FLAG_OVERLAPPED hebben ingesteld voor de time-out om correct te kunnen functioneren. Anders wordt de time-out nooit van kracht.
SO_REUSEADDR yes yes DWORD (Booleaanse waarde) Hiermee kan een socket worden gekoppeld aan een adres en poort die al in gebruik is. De optie SO_EXCLUSIVEADDRUSE kan dit voorkomen.
SO_REUSE_UNICASTPORT yes yes DWORD (Booleaanse waarde) Wanneer dit is ingesteld, staat u het hergebruik van tijdelijke poorten toe voor winsock-API-verbindingsfuncties waarvoor een expliciete binding is vereist, zoals ConnectEx. Houd er rekening mee dat verbindingsfuncties met een impliciete binding (zoals verbinding zonder expliciete binding) deze optie standaard hebben ingesteld. Gebruik deze optie in plaats van SO_PORT_SCALABILITY op platforms waar beide beschikbaar zijn.
SO_REUSE_MULTICASTPORT yes DWORD Wanneer deze optie is ingesteld op een socket, geeft deze optie aan dat de socket nooit wordt gebruikt voor het ontvangen van unicast-pakketten en dat de poort daarom kan worden gedeeld met andere multicast-only toepassingen. Als u de waarde instelt op 1, kan multicast-verkeer altijd op de poort worden gedeeld. Als u de waarde instelt op 0 (standaard) wordt dit gedrag uitgeschakeld.
SO_SNDBUF yes yes DWORD De totale bufferruimte per socket die is gereserveerd voor verzendingen. Dit is niet gerelateerd aan SO_MAX_MSG_SIZE en komt niet noodzakelijkerwijs overeen met de grootte van een TCP-verzendvenster.
SO_SNDLOWAT yes yes DWORD Een socketoptie van BSD UNIX opgenomen voor achterwaartse compatibiliteit. Met deze optie stelt u het minimum aantal bytes in dat moet worden verwerkt voor socketuitvoerbewerkingen. Deze optie wordt niet ondersteund door de Windows TCP/IP-provider. Als deze optie wordt gebruikt voor Windows Vista en hoger, mislukken de functies getsockopt en setsockopt met WSAEINVAL. In eerdere versies van Windows mislukken deze functies met WSAENOPROTOOPT.
SO_SNDTIMEO yes yes DWORD De time-out, in milliseconden, voor het blokkeren van het verzenden van oproepen. De standaardinstelling voor deze optie is nul, wat aangeeft dat er geen time-out optreedt voor een verzendbewerking. Als er een time-out optreedt bij een blokkering van een oproep voor verzenden, heeft de verbinding een onbepaalde status en moet deze worden gesloten.
Als de socket wordt gemaakt met behulp van de functie WSASocket , moet de parameter dwFlags het kenmerk WSA_FLAG_OVERLAPPED hebben ingesteld voor de time-out om correct te kunnen functioneren. Anders wordt de time-out nooit van kracht.
SO_TYPE yes DWORD Retourneert bijvoorbeeld het sockettype voor de opgegeven socket (SOCK_STREAM of SOCK_DGRAM).
SO_UPDATE_ACCEPT_CONTEXT yes DWORD (Booleaanse waarde) Deze optie wordt gebruikt met de functie AcceptEx . Met deze optie worden de eigenschappen van de socket bijgewerkt die worden overgenomen van de luistersocket. Deze optie moet worden ingesteld als de getpeername, getsockname, getsockopt of setsockopt-functies moeten worden gebruikt op de geaccepteerde socket.
SO_UPDATE_CONNECT_CONTEXT yes DWORD (Booleaanse waarde) Deze optie wordt gebruikt met de functies ConnectEx, WSAConnectByList en WSAConnectByName . Met deze optie worden de eigenschappen van de socket bijgewerkt nadat de verbinding tot stand is gebracht. Deze optie moet worden ingesteld als de getpeername, getsockname, getsockopt, setsockopt of afsluitfuncties moeten worden gebruikt op de aangesloten socket.
SO_USELOOPBACK yes yes DWORD (Booleaanse waarde) Gebruik het lokale loopback-adres bij het verzenden van gegevens vanuit deze socket. Deze optie mag alleen worden gebruikt wanneer alle verzonden gegevens ook lokaal worden ontvangen. Deze optie wordt niet ondersteund door de Windows TCP/IP-provider. Als deze optie wordt gebruikt voor Windows Vista en hoger, mislukken de functies getsockopt en setsockopt met WSAEINVAL. In eerdere versies van Windows mislukken deze functies met WSAENOPROTOOPT.

Windows ondersteuning voor SOL_SOCKET opties

Option Windows 10 Windows 7 Windows Server 2008 Windows Vista Windows Server 2003 Windows XP 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
Voorwaardelijke_AanvaardingSO 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 Ja 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

De SOL_SOCKET socketopties worden gedefinieerd in verschillende Winsock-headerbestanden:

  • Winsock2.h
  • Mswsock.h
  • Ws2def.h

Op de Microsoft Windows Software Development Kit (SDK) die is uitgebracht voor Windows Vista en later, is de organisatie van headerbestanden gewijzigd en wordt SOL_SOCKET niveau gedefinieerd in het headerbestand Ws2def.h dat automatisch wordt opgenomen in het winsock2.h-headerbestand. Sommige van de SOL_SOCKET socketopties worden gedefinieerd in de headerbestanden Winsock2.h en Mswsock.h . De resterende SOL_SOCKET socketopties worden gedefinieerd in het headerbestand Ws2def.h dat automatisch wordt opgenomen in het headerbestand Winsock2.h . De Ws2def.h mag nooit rechtstreeks worden gebruikt.

Op de Platform Software Development Kit (SDK) die is uitgebracht voor Windows Server 2003 en Windows XP, wordt het SOL_SOCKET niveau gedefinieerd in het headerbestand Winsock2.h. De SOL_SOCKET socketopties worden gedefinieerd in de headerbestanden Winsock2.h en Mswsock.h .

Requirements

Requirement Waarde
Koptekst
Winsock2.h;
Mswsock.h;
Ws2def.h (inclusief Winsock2.h)