Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I följande tabeller beskrivs alternativ för SOL_SOCKET socket. Se getsockopt och setsockopt funktionsreferenssidor för mer information om hur du hämtar och ställer in socketalternativ.
Om du vill räkna upp protokoll och identifiera egenskaper som stöds för varje installerat protokoll använder du funktionen WSAEnumProtocols, WSCEnumProtocolseller WSCEnumProtocols32.
Vissa socketalternativ kräver mer förklaring än vad dessa tabeller kan förmedla. sådana alternativ innehåller länkar till ytterligare sidor.
Note
Alla SOL_SOCKET socketalternativ gäller lika för IPv4 och IPv6 (förutom SO_BROADCAST, eftersom sändningen inte implementeras i IPv6).
SOL_SOCKET Socket-alternativ
| Option | Hämta | Ställ in | Optvaltyp | Description |
|---|---|---|---|---|
| PVD_CONFIG | yes | yes | char [] | Ett ogenomskinliga datastrukturobjekt som innehåller konfigurationsinformation för tjänstleverantören. Det här alternativet är implementeringsberoende. |
| SO_ACCEPTCONN | yes | DWORD (booleskt) | Returnerar om en socket är i lyssningsläge. Det här alternativet är endast giltigt för anslutningsorienterade protokoll. | |
| SO_BROADCAST | yes | yes | DWORD (booleskt) | Konfigurera en socket för att skicka sändningsdata. Det här alternativet är endast giltigt för protokoll som stöder sändning (till exempel IPX och UDP). |
| SO_BSP_STATE | yes | CSADDR_INFO | Returnerar den lokala adressen, den lokala porten, fjärradressen, fjärrporten, sockettypen och protokollet som används av en socket. Mer information finns i referensen för SO_BSP_STATE . | |
| SO_CONDITIONAL_ACCEPT | yes | yes | DWORD (booleskt) | Anger om inkommande anslutningar ska accepteras eller avvisas av programmet, inte av protokollstacken. Mer information finns i referensen för SO_CONDITIONAL_ACCEPT . |
| SO_CONNDATA | yes | yes | char [] | Ytterligare data, inte i den normala nätverksdataströmmen, som skickas med nätverksbegäranden för att upprätta en anslutning. Det här alternativet används av äldre protokoll som DECNet, OSI TP4 och andra. Det här alternativet stöds inte av TCP/IP-protokollet i Windows. |
| SO_CONNDATALEN | yes | DWORD | Längden, i byte, på ytterligare data, inte i den normala nätverksdataströmmen, som skickas med nätverksbegäranden för att upprätta en anslutning. Det här alternativet används av äldre protokoll som DECNet, OSI TP4 och andra. Det här alternativet stöds inte av TCP/IP-protokollet i Windows. | |
| SO_CONNECT_TIME | yes | DWORD | Returnerar antalet sekunder som en socket har anslutits. Det här alternativet är endast giltigt för anslutningsorienterade protokoll. | |
| SO_CONNOPT | yes | yes | char [] | Ytterligare anslutningsalternativdata, inte i den normala nätverksdataströmmen, som skickas med nätverksbegäranden för att upprätta en anslutning. Det här alternativet används av äldre protokoll som DECNet, OSI TP4 och andra. Det här alternativet stöds inte av TCP/IP-protokollet i Windows. |
| SO_CONNOPTLEN | yes | DWORD | Längden, i byte, på anslutningsalternativdata, inte i den normala nätverksdataströmmen, som skickas med nätverksbegäranden för att upprätta en anslutning. Det här alternativet används av äldre protokoll som DECNet, OSI TP4 och andra. Det här alternativet stöds inte av TCP/IP-protokollet i Windows. | |
| SO_DISCDATA | yes | yes | char [] | Ytterligare data, inte i den normala nätverksdataströmmen, som skickas med nätverksbegäranden om att koppla från en anslutning. Det här alternativet används av äldre protokoll som DECNet, OSI TP4 och andra. Det här alternativet stöds inte av TCP/IP-protokollet i Windows. |
| SO_DISCDATALEN | yes | DWORD | Längden, i byte, på ytterligare data, inte i den normala nätverksdataströmmen, som skickas med nätverksbegäranden om att koppla från en anslutning. Det här alternativet används av äldre protokoll som DECNet, OSI TP4 och andra. Det här alternativet stöds inte av TCP/IP-protokollet i Windows. | |
| SO_DISCOPT | yes | yes | char [] | Ytterligare alternativdata för frånkoppling, inte i den normala nätverksdataströmmen, som skickas med nätverksbegäranden för att koppla från en anslutning. Det här alternativet används av äldre protokoll som DECNet, OSI TP4 och andra. Det här alternativet stöds inte av TCP/IP-protokollet i Windows. |
| SO_DISCOPTLEN | yes | DWORD | Längden, i byte, på ytterligare frånkopplingsalternativdata, inte i den normala nätverksdataströmmen, som skickas med nätverksbegäranden om att koppla från en anslutning. Det här alternativet används av äldre protokoll som DECNet, OSI TP4 och andra. Det här alternativet stöds inte av TCP/IP-protokollet i Windows. | |
| SO_DEBUG | yes | yes | DWORD (booleskt) | Aktivera felsökningsutdata. Microsoft leverantörer matar för närvarande inte ut någon felsökningsinformation. |
| SO_DONTLINGER | yes | yes | DWORD (booleskt) | Anger tillståndet för l_onoff medlem i den dröjande struktur som är associerad med en socket. Om den här medlemmen inte är noll förblir en socket öppen under en angiven tid efter ett closesocket-funktionsanrop för att möjliggöra att köade data skickas. Det här alternativet är endast giltigt för tillförlitliga, anslutningsorienterade protokoll. |
| SO_DONTROUTE | yes | yes | DWORD (booleskt) | Anger att utgående data ska skickas på vilket gränssnitt socketen är bunden till och inte en dirigerad på något annat gränssnitt. Det här alternativet är endast giltigt för meddelandeorienterade protokoll. Microsoft leverantörer ignorerar det här alternativet tyst och läser alltid routningstabellen för att hitta rätt utgående gränssnitt. |
| SO_ERROR | yes | DWORD | Returnerar den senaste felkoden på den här socketen. Den här felkoden per socket anges inte alltid omedelbart. | |
| SO_EXCLUSIVEADDRUSE | yes | yes | DWORD (booleskt) | Förhindrar att andra socketar binds till samma adress och port. Det här alternativet måste anges innan bindningsfunktionen anropas. Mer information finns i referensen för SO_EXCLUSIVEADDRUSE . |
| SO_GROUP_ID | yes | osignerad int | Det här socketalternativet är reserverat och bör inte användas. | |
| SO_GROUP_PRIORITY | yes | yes | int | Det här socketalternativet är reserverat och bör inte användas. |
| SO_KEEPALIVE | yes | yes | DWORD (booleskt) | Aktiverar keep-alive för en socketanslutning. Gäller endast för protokoll som stöder begreppet keep-alive (anslutningsorienterade protokoll). För TCP är standardtimeouten keep-alive 2 timmar och keep-alive-intervallet är 1 sekund. Standardantalet keep-alive-avsökningar varierar beroende på vilken version av Windows. Mer information finns i referensen för SO_KEEPALIVE . |
| SO_LINGER | yes | yes | struct linger | Anger tillståndet för den lingerstruktur som är associerad med en socket. Om den l_onoff medlemmen i lingerstrukturen inte är noll, förblir en socket öppen under en angiven tid efter ett closesocket-funktionsanrop för att aktivera köade data som ska skickas. Hur lång tid, i sekunder, för att förbli öppen anges i l_linger medlem i lingerstrukturen . Det här alternativet är endast giltigt för tillförlitliga, anslutningsorienterade protokoll. |
| SO_MAX_MSG_SIZE | yes | DWORD | Returnerar den maximala utgående meddelandestorleken för meddelandeorienterade socketar som stöds av protokollet. Har ingen betydelse för strömorienterade socketar. | |
| SO_MAXDG | yes | DWORD | Returnerar den maximala storleken i byte för utgående datagram som stöds av protokollet. Det här socketalternativet har ingen betydelse för strömorienterade socketar. | |
| SO_MAXPATHDG | yes | DWORD | Returnerar den maximala storleken i byte för utgående datagram som stöds av protokollet till en viss måladress. Det här socketalternativet har ingen betydelse för strömorienterade socketar. Microsoft leverantörer kan tyst behandla detta som SO_MAXDG. | |
| SO_OOBINLINE | yes | yes | DWORD (booleskt) | Anger att out-of-bound data ska returneras i linje med vanliga data. Det här alternativet är endast giltigt för anslutningsorienterade protokoll som stöder out-of-band-data. |
| SO_OPENTYPE | yes | yes | DWORD | När den har angetts påverkar det om efterföljande socketar som skapas inte överlappas. Möjliga värden för det här alternativet är SO_SYNCHRONOUS_ALERT och SO_SYNCHRONOUS_NONALERT. Det här alternativet bör inte användas. Använd i stället WSASocket-funktionen och lämna WSA_FLAG_OVERLAPPED biten i parametern dwFlags inaktiverad. |
| SO_PAUSE_ACCEPT | yes | yes | DWORD(booleskt) | Använd det här alternativet för lyssningsuttag. När alternativet är inställt svarar socketen på alla inkommande anslutningar med en RST i stället för att acceptera dem. |
| SO_PORT_SCALABILITY | yes | yes | DWORD (booleskt) | Möjliggör lokal portskalbarhet för en socket genom att tillåta att portallokeringen maximeras genom att jokerteckenportar allokeras flera gånger för olika lokala adressportpar på en lokal dator. På plattformar där båda alternativen är tillgängliga föredrar du SO_REUSE_UNICASTPORT i stället för det här alternativet. Mer information finns i referensen för SO_PORT_SCALABILITY . |
| SO_PROTOCOL_INFO | yes | WSAPROTOCOL_INFO | Det här alternativet definieras för alternativet SO_PROTOCOL_INFOW socket om UNICODE-makrot har definierats. Om UNICODE-makrot inte har definierats definieras det här alternativet för alternativet SO_PROTOCOL_INFOA socket. | |
| SO_PROTOCOL_INFOA | yes | WSAPROTOCOL_INFOA | Returnerar den WSAPROTOCOL_INFOA strukturen för den angivna socketen | |
| SO_PROTOCOL_INFOW | yes | WSAPROTOCOL_INFOW | Returnerar den WSAPROTOCOL_INFOW strukturen för den angivna socketen | |
| SO_RANDOMIZE_PORT | yes | yes | DWORD(booleskt) | Det här alternativet bör anges på en obundet socket. När SO_RANDOMIZE_PORT anges och en tillfällig port väljs på socketen, är ett slumpmässigt portnummer bundet. Automatisk återanvändning av portar (portar som valts med SO_REUSE_UNICASTPORT) randomiserar också den returnerade porten, så om ett programuppsättningar SO_REUSE_UNICASTPORT och sedan försöker ange SO_RANDOMIZE_PORT misslyckas det andra setsockopt-anropet . |
| SO_RCVBUF | yes | yes | DWORD | Det totala buffertutrymmet per socket som reserverats för mottagningar. Detta är inte relaterat till SO_MAX_MSG_SIZE och motsvarar inte nödvändigtvis storleken på TCP-mottagningsfönstret. |
| SO_RCVLOWAT | yes | yes | DWORD | Ett socketalternativ från BSD UNIX ingår för bakåtkompatibilitet. Det här alternativet anger det minsta antal byte som ska bearbetas för socketindataåtgärder. Det här alternativet stöds inte av Windows TCP/IP-provider. Om det här alternativet används på Windows Vista och senare misslyckas funktionerna getsockopt och setsockopt med WSAEINVAL. I tidigare versioner av Windows misslyckas dessa funktioner med WSAENOPROTOOPT. |
| SO_RCVTIMEO | yes | yes | DWORD | Tidsgränsen, i millisekunder, för blockering av mottagningsanrop. Standardvärdet för det här alternativet är noll, vilket indikerar att en mottagningsåtgärd inte överskrider tidsgränsen. Om ett blockerande mottagningsanrop överskrider tidsgränsen är anslutningen i ett obestämt tillstånd och bör stängas. Om socketen skapas med hjälp av funktionen WSASocket måste parametern dwFlags ha WSA_FLAG_OVERLAPPED-attributet inställt för att tidsgränsen ska fungera korrekt. Annars börjar tidsgränsen aldrig gälla. |
| SO_REUSEADDR | yes | yes | DWORD (booleskt) | Tillåter att en socket binder till en adress och port som redan används. Alternativet SO_EXCLUSIVEADDRUSE kan förhindra detta. |
| SO_REUSE_UNICASTPORT | yes | yes | DWORD (booleskt) | När det är inställt tillåter du tillfällig återanvändning av portar för Winsock API-anslutningsfunktioner som kräver en explicit bindning, till exempel ConnectEx. Observera att anslutningsfunktioner med en implicit bindning (till exempel ansluta utan explicit bindning) har det här alternativet inställt som standard. Använd det här alternativet i stället för att SO_PORT_SCALABILITY på plattformar där båda är tillgängliga. |
| SO_REUSE_MULTICASTPORT | yes | DWORD | När det är inställt på en socket anger det här alternativet att socketen aldrig kommer att användas för att ta emot unicast-paket, och därmed att dess port kan delas med andra program med endast multicast. Om värdet anges till 1 kan du alltid dela multicast-trafik på porten. Om du anger värdet till 0 (standard) inaktiveras det här beteendet. | |
| SO_SNDBUF | yes | yes | DWORD | Det totala buffertutrymmet per socket som reserverats för skickar. Detta är inte relaterat till SO_MAX_MSG_SIZE och motsvarar inte nödvändigtvis storleken på ett TCP-sändningsfönster. |
| SO_SNDLOWAT | yes | yes | DWORD | Ett socketalternativ från BSD UNIX ingår för bakåtkompatibilitet. Det här alternativet anger det minsta antal byte som ska bearbetas för socketutdataåtgärder. Det här alternativet stöds inte av Windows TCP/IP-provider. Om det här alternativet används på Windows Vista och senare misslyckas funktionerna getsockopt och setsockopt med WSAEINVAL. I tidigare versioner av Windows misslyckas dessa funktioner med WSAENOPROTOOPT. |
| SO_SNDTIMEO | yes | yes | DWORD | Tidsgränsen, i millisekunder, för blockering av sändningsanrop. Standardvärdet för det här alternativet är noll, vilket indikerar att en sändningsåtgärd inte överskrider tidsgränsen. Om ett blockerande sändningsanrop överskrider tidsgränsen är anslutningen i ett obestämd tillstånd och bör stängas. Om socketen skapas med hjälp av funktionen WSASocket måste parametern dwFlags ha WSA_FLAG_OVERLAPPED-attributet inställt för att tidsgränsen ska fungera korrekt. Annars börjar tidsgränsen aldrig gälla. |
| SO_TYPE | yes | DWORD | Returnerar sockettypen för den angivna socketen (till exempel SOCK_STREAM eller SOCK_DGRAM). | |
| SO_UPDATE_ACCEPT_CONTEXT | yes | DWORD (booleskt) | Det här alternativet används med funktionen AcceptEx . Det här alternativet uppdaterar egenskaperna för socketen som ärvs från lyssningsuttaget. Det här alternativet bör anges om funktionerna getpeername, getsockname, getsockopt eller setsockopt ska användas på den godkända socketen. | |
| SO_UPDATE_CONNECT_CONTEXT | yes | DWORD (booleskt) | Det här alternativet används med funktionerna ConnectEx, WSAConnectByList och WSAConnectByName . Det här alternativet uppdaterar egenskaperna för socketen när anslutningen har upprättats. Det här alternativet bör anges om funktionerna getpeername, getockname, getsockopt, setsockopt eller shutdown ska användas på den anslutna socketen. | |
| SO_USELOOPBACK | yes | yes | DWORD (booleskt) | Använd den lokala loopback-adressen när du skickar data från den här socketen. Det här alternativet bör endast användas när alla data som skickas också tas emot lokalt. Det här alternativet stöds inte av Windows TCP/IP-provider. Om det här alternativet används på Windows Vista och senare misslyckas funktionerna getsockopt och setsockopt med WSAEINVAL. I tidigare versioner av Windows misslyckas dessa funktioner med WSAENOPROTOOPT. |
Windows stöd för SOL_SOCKET alternativ
| 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 | |||||
| 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 | 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
Alternativen för SOL_SOCKET socket definieras i flera Winsock-huvudfiler:
- Winsock2.h
- Mswsock.h
- Ws2def.h
På Microsoft Windows Software Development Kit (SDK) som släpptes för Windows Vista och senare har organisationen av huvudfiler ändrats och SOL_SOCKET nivå definieras i rubrikfilen Ws2def.h som automatiskt ingår i winsock2.h-huvudfilen. Några av de SOL_SOCKET socketalternativen definieras i huvudfilerna Winsock2.h och Mswsock.h . De återstående SOL_SOCKET socketalternativen definieras i rubrikfilen Ws2def.h som automatiskt ingår i sidhuvudfilen Winsock2.h . Ws2def.h ska aldrig användas direkt.
På Platform Software Development Kit (SDK) som släpptes för Windows Server 2003 och Windows XP definieras den SOL_SOCKET nivån i winsock2.h-huvudfilen. Alternativen SOL_SOCKET socket definieras i huvudfilerna Winsock2.h och Mswsock.h .
Requirements
| Requirement | Värde |
|---|---|
| Sidhuvud |
|