Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les tableaux suivants décrivent SOL_SOCKET options de socket. Veuillez consulter les pages de référence des fonctions getsockopt et setsockopt pour plus d’informations sur l’obtention et la définition des options de socket.
Pour énumérer les protocoles et découvrir les propriétés prises en charge pour chaque protocole installé, utilisez la fonction WSAEnumProtocols, WSCEnumProtocols, ou WSCEnumProtocols32.
Certaines options de socket nécessitent plus d’explications que ce que ces tableaux peuvent fournir ; ces options contiennent des liens vers des pages supplémentaires.
Note
Toutes les options de socket SOL_SOCKET s’appliquent également à IPv4 et IPv6 (sauf SO_BROADCAST, car la diffusion n’est pas implémentée dans IPv6).
SOL_SOCKET Socket Options
| Option | Obtenir | Définissez | Type d’optval | Description |
|---|---|---|---|---|
| PVD_CONFIG | oui | oui | char [] | Objet de structure de données opaque contenant des informations de configuration pour le fournisseur de services. Cette option dépend de l’implémentation. |
| SO_ACCEPTCONN | oui | DWORD (booléen) | Retourne si un socket est en mode d’écoute. Cette option est valide uniquement pour les protocoles orientés connexion. | |
| SO_BROADCAST | oui | oui | DWORD (booléen) | Configurez un socket pour l’envoi de données de diffusion. Cette option est valide uniquement pour les protocoles qui prennent en charge la diffusion (IPX et UDP, par exemple). |
| SO_BSP_STATE | oui | CSADDR_INFO | Retourne l’adresse locale, le port local, l’adresse distante, le port distant, le type de socket et le protocole utilisé par un socket. Pour plus d’informations, consultez la référence SO_BSP_STATE . | |
| SO_CONDITIONAL_ACCEPT | oui | oui | DWORD (booléen) | Indique si les connexions entrantes doivent être acceptées ou rejetées par l’application, et non par la pile de protocoles. Pour plus d’informations, consultez la référence SO_CONDITIONAL_ACCEPT . |
| SO_CONNDATA | oui | oui | char [] | Des données supplémentaires, et non dans le flux de données réseau normal, envoyées avec des demandes réseau pour établir une connexion. Cette option est utilisée par des protocoles hérités tels que DECNet, OSI TP4 et d’autres. Cette option n’est pas prise en charge par le protocole TCP/IP dans Windows. |
| SO_CONNDATALEN | oui | DWORD | Longueur, en octets, de données supplémentaires, et non dans le flux de données réseau normal, envoyée avec des requêtes réseau pour établir une connexion. Cette option est utilisée par des protocoles hérités tels que DECNet, OSI TP4 et d’autres. Cette option n’est pas prise en charge par le protocole TCP/IP dans Windows. | |
| SO_CONNECT_TIME | oui | DWORD | Retourne le nombre de secondes qu’un socket a été connecté. Cette option est valide uniquement pour les protocoles orientés connexion. | |
| SO_CONNOPT | oui | oui | char [] | Données d’option de connexion supplémentaires, et non dans le flux de données réseau normal, envoyées avec des demandes réseau pour établir une connexion. Cette option est utilisée par des protocoles hérités tels que DECNet, OSI TP4 et d’autres. Cette option n’est pas prise en charge par le protocole TCP/IP dans Windows. |
| SO_CONNOPTLEN | oui | DWORD | Longueur, en octets, des données d’option de connexion, et non dans le flux de données réseau normal, envoyée avec des requêtes réseau pour établir une connexion. Cette option est utilisée par des protocoles hérités tels que DECNet, OSI TP4 et d’autres. Cette option n’est pas prise en charge par le protocole TCP/IP dans Windows. | |
| SO_DISCDATA | oui | oui | char [] | Des données supplémentaires, et non dans le flux de données réseau normal, envoyées avec des requêtes réseau pour déconnecter une connexion. Cette option est utilisée par des protocoles hérités tels que DECNet, OSI TP4 et d’autres. Cette option n’est pas prise en charge par le protocole TCP/IP dans Windows. |
| SO_DISCDATALEN | oui | DWORD | Longueur, en octets, de données supplémentaires, et non dans le flux de données réseau normal, envoyée avec des requêtes réseau pour déconnecter une connexion. Cette option est utilisée par des protocoles hérités tels que DECNet, OSI TP4 et d’autres. Cette option n’est pas prise en charge par le protocole TCP/IP dans Windows. | |
| SO_DISCOPT | oui | oui | char [] | Données d’option de déconnexion supplémentaires, et non dans le flux de données réseau normal, envoyées avec des demandes réseau pour déconnecter une connexion. Cette option est utilisée par des protocoles hérités tels que DECNet, OSI TP4 et d’autres. Cette option n’est pas prise en charge par le protocole TCP/IP dans Windows. |
| SO_DISCOPTLEN | oui | DWORD | Longueur, en octets, des données d’option de déconnexion supplémentaires, et non dans le flux de données réseau normal, qui est envoyée avec des requêtes réseau pour déconnecter une connexion. Cette option est utilisée par des protocoles hérités tels que DECNet, OSI TP4 et d’autres. Cette option n’est pas prise en charge par le protocole TCP/IP dans Windows. | |
| SO_DEBUG | oui | oui | DWORD (booléen) | Activez la sortie de débogage. Actuellement, les fournisseurs Microsoft ne génèrent aucune information de débogage. |
| SO_DONTLINGER | oui | oui | DWORD (booléen) | Indique l’état du membre l_onoff de la structure persistante associée à un socket. Si ce membre n’est pas différent de zéro, un socket reste ouvert pendant une durée spécifiée après un appel de fonction closesocket pour permettre l’envoi de données mises en file d’attente. Cette option n’est valide que pour les protocoles fiables et orientés connexion. |
| SO_DONTROUTE | oui | oui | DWORD (booléen) | Indique que les données sortantes doivent être envoyées sur l’interface à laquelle le socket est lié et non pas routé sur une autre interface. Cette option est valide uniquement pour les protocoles orientés messages. Microsoft fournisseurs ignorent silencieusement cette option et consultent toujours la table de routage pour trouver l’interface sortante appropriée. |
| SO_ERROR | oui | DWORD | Retourne le dernier code d’erreur sur ce socket. Ce code d’erreur par socket n’est pas toujours défini immédiatement. | |
| SO_EXCLUSIVEADDRUSE | oui | oui | DWORD (booléen) | Empêche toute autre liaison de socket vers la même adresse et le même port. Cette option doit être définie avant d’appeler la fonction de liaison . Pour plus d’informations, consultez la référence SO_EXCLUSIVEADDRUSE . |
| SO_GROUP_ID | oui | nombre entier non signé | Cette option de socket est réservée et ne doit pas être utilisée. | |
| SO_GROUP_PRIORITY | oui | oui | int | Cette option de socket est réservée et ne doit pas être utilisée. |
| SO_KEEPALIVE | oui | oui | DWORD (booléen) | Active la conservation active pour une connexion de socket. Valide uniquement pour les protocoles qui prennent en charge la notion de keep-alive (protocoles orientés connexion). Pour TCP, le délai d’expiration de conservation par défaut est de 2 heures et l’intervalle de conservation est de 1 seconde. Le nombre par défaut de sondes keep-alive varie en fonction de la version de Windows. Pour plus d’informations, consultez la référence SO_KEEPALIVE . |
| SO_LINGER | oui | oui | struct linger | Indique l’état de la structure persistante associée à un socket. Si le membre l_onoff de la structure persistante n’est pas différent de zéro, un socket reste ouvert pendant une durée spécifiée après un appel de fonction closesocket pour permettre l’envoi des données en file d’attente. La durée, en secondes, de rester ouverte est spécifiée dans le membre l_linger de la structure persistante . Cette option n’est valide que pour les protocoles fiables et orientés connexion. |
| SO_MAX_MSG_SIZE | oui | DWORD | Retourne la taille maximale des messages sortants pour les sockets orientés messages pris en charge par le protocole. N’a aucune signification pour les sockets orientés flux. | |
| SO_MAXDG | oui | DWORD | Retourne la taille maximale, en octets, pour les datagrammes sortants pris en charge par le protocole. Cette option de socket n’a aucune signification pour les sockets orientés flux. | |
| SO_MAXPATHDG | oui | DWORD | Retourne la taille maximale, en octets, pour les datagrammes sortants pris en charge par le protocole à une adresse de destination donnée. Cette option de socket n’a aucune signification pour les sockets orientés flux. Microsoft fournisseurs peuvent traiter cela en mode silencieux comme SO_MAXDG. | |
| SO_OOBINLINE | oui | oui | DWORD (booléen) | Indique que les données hors limites doivent être retournées en ligne avec des données régulières. Cette option est valide uniquement pour les protocoles orientés connexion qui prennent en charge les données hors bande. |
| SO_OPENTYPE | oui | oui | DWORD | Une fois défini, affecte si les sockets suivants créés ne se chevauchent pas. Les valeurs possibles pour cette option sont SO_SYNCHRONOUS_ALERT et SO_SYNCHRONOUS_NONALERT. Cette option ne doit pas être utilisée. Utilisez plutôt la fonction WSASocket et laissez le bit WSA_FLAG_OVERLAPPED dans le paramètre dwFlags désactivé. |
| SO_PAUSE_ACCEPT | oui | oui | DWORD(booléen) | Utilisez cette option pour écouter les sockets. Lorsque l’option est définie, le socket répond à toutes les connexions entrantes avec un RST au lieu de les accepter. |
| SO_PORT_SCALABILITY | oui | oui | DWORD (booléen) | Active l’extensibilité des ports locaux pour un socket en autorisant l’allocation de ports à optimiser en allouant plusieurs fois des ports génériques pour différentes paires de ports d’adresse locale sur un ordinateur local. Sur les plateformes où les deux options sont disponibles, préférez SO_REUSE_UNICASTPORT au lieu de cette option. Pour plus d’informations, consultez la référence SO_PORT_SCALABILITY . |
| SO_PROTOCOL_INFO | oui | WSAPROTOCOL_INFO | Cette option est définie sur l’option de socket SO_PROTOCOL_INFOW si la macro UNICODE est définie. Si la macro UNICODE n’est pas définie, cette option est définie sur l’option de socket SO_PROTOCOL_INFOA. | |
| SO_PROTOCOL_INFOA | oui | WSAPROTOCOL_INFOA | Retourne la structure WSAPROTOCOL_INFOA pour le socket donné | |
| SO_PROTOCOL_INFOW | oui | WSAPROTOCOL_INFOW | Retourne la structure WSAPROTOCOL_INFOW pour le socket donné | |
| SO_RANDOMIZE_PORT | oui | oui | DWORD(booléen) | Cette option doit être définie sur un socket indépendant. Lorsque SO_RANDOMIZE_PORT est définie et qu’un port éphémère est sélectionné sur le socket, un numéro de port aléatoire est lié. Les ports de réutilisation automatique (ports sélectionnés à l’aide de SO_REUSE_UNICASTPORT) aléatoirent également le port retourné. Par conséquent, si une application définit SO_REUSE_UNICASTPORT, puis tente de définir SO_RANDOMIZE_PORT, le deuxième appel setsockopt échoue. |
| SO_RCVBUF | oui | oui | DWORD | Espace tampon total par socket réservé aux réceptions. Cela n’est pas lié à SO_MAX_MSG_SIZE et ne correspond pas nécessairement à la taille de la fenêtre de réception TCP. |
| SO_RCVLOWAT | oui | oui | DWORD | Option de socket de BSD UNIX incluse pour la compatibilité descendante. Cette option définit le nombre minimal d’octets à traiter pour les opérations d’entrée de socket. Cette option n’est pas prise en charge par le fournisseur TCP/IP Windows. Si cette option est utilisée sur Windows Vista et versions ultérieures, les fonctions getsockopt et setsockopt échouent avec WSAEINVAL. Sur les versions antérieures de Windows, ces fonctions échouent avec WSAENOPROTOOPT. |
| SO_RCVTIMEO | oui | oui | DWORD | Délai d’expiration, en millisecondes, pour le blocage des appels de réception. La valeur par défaut de cette option est zéro, ce qui indique qu’une opération de réception n’expire pas. Si un appel de réception bloquant expire, la connexion est dans un état indéterminé et doit être fermée. Si le socket est créé à l’aide de la fonction WSASocket , le paramètre dwFlags doit avoir l’attribut WSA_FLAG_OVERLAPPED défini pour que le délai d’expiration fonctionne correctement. Sinon, le délai d’expiration ne prend jamais effet. |
| SO_REUSEADDR | oui | oui | DWORD (booléen) | Permet à un socket de lier une adresse et un port déjà utilisés. L’option SO_EXCLUSIVEADDRUSE peut empêcher cela. |
| SO_REUSE_UNICASTPORT | oui | oui | DWORD (booléen) | Quand elle est définie, autorisez la réutilisation des ports éphémères pour les fonctions de connexion d’API Winsock qui nécessitent une liaison explicite, telle que ConnectEx. Notez que les fonctions de connexion avec une liaison implicite (par exemple , se connecter sans liaison explicite) ont cette option définie par défaut. Utilisez cette option au lieu de SO_PORT_SCALABILITY sur les plateformes où les deux sont disponibles. |
| SO_REUSE_MULTICASTPORT | oui | DWORD | Lorsqu’il est défini sur un socket, cette option indique que le socket ne sera jamais utilisé pour recevoir des paquets de monodiffusion et, par conséquent, que son port peut être partagé avec d’autres applications multidiffusion uniquement. La définition de la valeur sur 1 active toujours le partage du trafic de multidiffusion sur le port. La définition de la valeur sur 0 (par défaut) désactive ce comportement. | |
| SO_SNDBUF | oui | oui | DWORD | Espace tampon total par socket réservé aux envois. Cela n’est pas lié à SO_MAX_MSG_SIZE et ne correspond pas nécessairement à la taille d’une fenêtre d’envoi TCP. |
| SO_SNDLOWAT | oui | oui | DWORD | Option de socket de BSD UNIX incluse pour la compatibilité descendante. Cette option définit le nombre minimal d’octets à traiter pour les opérations de sortie de socket. Cette option n’est pas prise en charge par le fournisseur TCP/IP Windows. Si cette option est utilisée sur Windows Vista et versions ultérieures, les fonctions getsockopt et setsockopt échouent avec WSAEINVAL. Sur les versions antérieures de Windows, ces fonctions échouent avec WSAENOPROTOOPT. |
| SO_SNDTIMEO | oui | oui | DWORD | Délai d’expiration, en millisecondes, pour bloquer les appels d’envoi. La valeur par défaut de cette option est zéro, ce qui indique qu’une opération d’envoi n’expire pas. Si un appel d’envoi bloquant expire, la connexion est dans un état indéterminé et doit être fermée. Si le socket est créé à l’aide de la fonction WSASocket , le paramètre dwFlags doit avoir l’attribut WSA_FLAG_OVERLAPPED défini pour que le délai d’expiration fonctionne correctement. Sinon, le délai d’expiration ne prend jamais effet. |
| SO_TYPE | oui | DWORD | Retourne le type de socket pour le socket donné (SOCK_STREAM ou SOCK_DGRAM, par exemple). | |
| SO_UPDATE_ACCEPT_CONTEXT | oui | DWORD (booléen) | Cette option est utilisée avec la fonction AcceptEx . Cette option met à jour les propriétés du socket qui sont héritées du socket d’écoute. Cette option doit être définie si les fonctions getpeername, getockname, getockopt ou setsockopt doivent être utilisées sur le socket accepté. | |
| SO_UPDATE_CONNECT_CONTEXT | oui | DWORD (booléen) | Cette option est utilisée avec les fonctions ConnectEx, WSAConnectByList et WSAConnectByName . Cette option met à jour les propriétés du socket une fois la connexion établie. Cette option doit être définie si les fonctions getpeername, getockname, getsockopt, setsockopt ou shutdown doivent être utilisées sur le socket connecté. | |
| SO_USELOOPBACK | oui | oui | DWORD (booléen) | Utilisez l’adresse de bouclage locale lors de l’envoi de données à partir de ce socket. Cette option ne doit être utilisée que lorsque toutes les données envoyées seront également reçues localement. Cette option n’est pas prise en charge par le fournisseur TCP/IP Windows. Si cette option est utilisée sur Windows Vista et versions ultérieures, les fonctions getsockopt et setsockopt échouent avec WSAEINVAL. Sur les versions antérieures de Windows, ces fonctions échouent avec WSAENOPROTOOPT. |
prise en charge de Windows pour les options de SOL_SOCKET
| 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 | oui | oui | oui | oui | oui | oui | oui | oui | oui |
| SO_BROADCAST | oui | oui | oui | oui | oui | oui | oui | oui | oui |
| SO_BSP_STATE | oui | oui | oui | oui | |||||
| SO_CONDITIONAL_ACCEPT | oui | oui | oui | oui | oui | oui | oui | ||
| SO_CONNDATA | oui | oui | oui | oui | oui | oui | oui | oui | |
| SO_CONNDATALEN | oui | oui | oui | oui | oui | oui | oui | oui | |
| SO_CONNECT_TIME | oui | oui | oui | oui | oui | oui | oui | oui | oui |
| SO_CONNOPT | oui | oui | oui | oui | oui | oui | oui | oui | |
| SO_CONNOPTLEN | oui | oui | oui | oui | oui | oui | oui | oui | |
| SO_DISCDATA | oui | oui | oui | oui | oui | oui | oui | oui | |
| SO_DISCDATALEN | oui | oui | oui | oui | oui | oui | oui | oui | |
| SO_DISCOPT | oui | oui | oui | oui | oui | oui | oui | oui | |
| SO_DISCOPTLEN | oui | oui | oui | oui | oui | oui | oui | oui | |
| SO_DEBUG | oui | oui | oui | oui | oui | oui | oui | oui | oui |
| SO_DONTLINGER | oui | oui | oui | oui | oui | oui | oui | oui | oui |
| SO_DONTROUTE | oui | oui | oui | oui | oui | oui | oui | oui | oui |
| SO_ERROR | oui | oui | oui | oui | oui | oui | oui | oui | oui |
| SO_EXCLUSIVEADDRUSE | oui | oui | oui | oui | oui | oui | oui | Oui SP4+ | |
| SO_GROUP_ID | oui | oui | oui | oui | |||||
| SO_GROUP_PRIORITY | oui | oui | oui | oui | |||||
| SO_KEEPALIVE | oui | oui | oui | oui | oui | oui | oui | oui | oui |
| SO_LINGER | oui | oui | oui | oui | oui | oui | oui | oui | oui |
| SO_MAX_MSG_SIZE | oui | oui | oui | oui | oui | oui | oui | oui | oui |
| SO_MAXDG | oui | oui | oui | oui | oui | oui | oui | ||
| SO_MAXPATHDG | oui | oui | oui | oui | oui | oui | oui | ||
| SO_OOBINLINE | oui | oui | oui | oui | oui | oui | oui | oui | oui |
| SO_OPENTYPE | oui | oui | oui | oui | oui | oui | oui | oui | oui |
| SO_PORT_SCALABILITY | oui | oui | oui | ||||||
| SO_PROTECT | oui | ||||||||
| SO_PROTOCOL_INFO | oui | oui | oui | oui | oui | oui | oui | oui | oui |
| SO_PROTOCOL_INFOA | oui | oui | oui | oui | oui | oui | oui | oui | oui |
| SO_PROTOCOL_INFOW | oui | oui | oui | oui | oui | oui | oui | oui | oui |
| SO_RCVBUF | oui | oui | oui | oui | oui | oui | oui | oui | oui |
| SO_RCVLOWAT | |||||||||
| SO_RCVTIMEO | oui | oui | oui | oui | oui | oui | oui | oui | oui |
| SO_RANDOMIZE_PORT | oui | oui | oui | oui | |||||
| SO_REUSEADDR | oui | oui | oui | oui | oui | oui | oui | oui | oui |
| SO_REUSE_UNICASTPORT | oui | ||||||||
| SO_REUSE_MULTICASTPORT | oui | ||||||||
| SO_SNDBUF | oui | oui | oui | oui | oui | oui | oui | oui | oui |
| SO_SNDLOWAT | |||||||||
| SO_SNDTIMEO | oui | oui | oui | oui | oui | oui | oui | oui | oui |
| SO_TYPE | oui | oui | oui | oui | oui | oui | oui | oui | oui |
| SO_UPDATE_ACCEPT_CONTEXT | oui | oui | oui | oui | oui | oui | oui | oui | |
| SO_UPDATE_CONNECT_CONTEXT | oui | oui | oui | oui | oui | oui | |||
| SO_USELOOPBACK |
Remarks
Les options de socket SOL_SOCKET sont définies dans plusieurs fichiers d’en-tête Winsock :
- Winsock2.h
- Mswsock.h
- Ws2def.h
Dans le kit de développement logiciel (SDK) Microsoft Windows publié pour Windows Vista et versions ultérieures, l’organisation des fichiers d’en-tête a changé et SOL_SOCKET niveau est défini dans le fichier d’en-tête Ws2def.h qui est automatiquement inclus dans le fichier d’en-tête Winsock2.h. Certaines des options de socket SOL_SOCKET sont définies dans les fichiers d’en-tête Winsock2.h et Mswsock.h . Les options de socket SOL_SOCKET restantes sont définies dans le fichier d’en-tête Ws2def.h qui est automatiquement inclus par le fichier d’en-tête Winsock2.h . Le fichier Ws2def.h ne doit jamais être utilisé directement.
Dans le Kit de développement logiciel (SDK) de plateforme publié pour Windows Server 2003 et Windows XP, le niveau SOL_SOCKET est défini dans le fichier d’en-tête Winsock2.h. Les options de socket SOL_SOCKET sont définies dans les fichiers d’en-tête Winsock2.h et Mswsock.h .
Requirements
| Requirement | Valeur |
|---|---|
| Header |
|