Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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 |
|