IPPROTO_UDP socket, options

Le tableau suivant décrit IPPROTO_UDP options de socket qui s’appliquent aux sockets créés pour les familles d’adresses IPv4 et IPv6 (AF_INET et AF_INET6) avec le paramètre de protocole à la fonction socket spécifiée comme UDP (IPPROTO_UDP). Pour plus d’informations sur l’obtention et la définition des options de socket, consultez les pages de référence des fonctions getsockopt et setsockopt .

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 .

Options

Option Obtenir Définissez Type Optval Description
UDP_CHECKSUM_COVERAGE (ws2tcpip.h) Oui Oui DWORD (booléen) Quand la valeur est TRUE, les datagrammes UDP sont envoyés avec une somme de contrôle.
UDP_NOCHECKSUM (ws2tcpip.h) Oui Oui DWORD (booléen) Lorsque la valeur est TRUE, les datagrammes UDP sont envoyés avec la somme de contrôle de zéro. Obligatoire pour les fournisseurs de services. Si un fournisseur de services ne dispose pas d’un mécanisme pour désactiver le calcul de la somme de contrôle UDP, il peut simplement stocker cette option sans effectuer aucune action. Cette option n’est pas prise en charge pour IPv6.
UDP_RECV_MAX_COALESCED_SIZE (ws2ipdef.h ; include ws2tcpip.h) Oui Oui DWORD Lorsqu’il est défini sur une valeur différente de zéro, plusieurs datagrammes reçus peuvent être fusionnés en une seule mémoire tampon de messages avant d’être indiqués à votre application. La valeur de l’option représente la taille maximale en octets des messages fusionnés qui peuvent être indiqués à votre application. Les messages non coalescés supérieurs à la valeur d’option peuvent toujours être indiqués. La valeur par défaut est 0 (pas de fusion). Les datagrammes ne seront regroupés que s’ils proviennent de la même adresse source et du même port. Tous les datagrammes coalescés seront de même taille, à l’exception du dernier datagramme, qui peut être plus petit. Si votre application souhaite récupérer les tailles de datagramme (à l’exception du dernier datagramme, qui peut différer) qui ont été coalescées, vous devez utiliser une API de réception qui prend en charge les informations de contrôle (par exemple , LPFN_WSARECVMSG (WSARecvMsg)). La taille de tous les messages sauf le dernier se trouve dans le message de contrôle UDP_COALESCED_INFO , qui est de type DWORD. Pour la sécurité du type, votre application doit utiliser les fonctions WSAGetUdpRecvMaxCoalescedSize et WSASetUdpRecvMaxCoalescedSize directement au lieu de l’option socket.
UDP_SEND_MSG_SIZE (ws2ipdef.h ; include ws2tcpip.h) Oui Oui DWORD Lorsque la valeur est différente de zéro, les mémoires tampons envoyées par votre application sont décomposées en plusieurs messages par la pile réseau. La valeur de l’option représente la taille de chaque message décomposé. La valeur de l’option est représentée en octets. La taille du dernier segment peut être inférieure à la valeur de l’option. La valeur par défaut est 0 (aucune segmentation). Votre application doit définir une valeur inférieure à la MTU du chemin d’accès à la ou aux destination(s) afin d’éviter la fragmentation de l’adresse IP. Pour la sécurité du type, votre application doit utiliser les fonctions WSAGetUdpSendMessageSize et WSASetUdpSendMessageSize au lieu de l’option socket directement.

Prise en charge de Windows hérité pour les options de IPPROTO_UDP

UDP_CHECKSUM_COVERAGE n’est pas disponible sur Windows 2000 et windows NT4. UDP_CHECKSUM_COVERAGE et UDP_NOCHECKSUM ne sont pas disponibles sur Windows 9x/Me.

Notes

Sur le Kit de développement logiciel (SDK) Microsoft Windows publié pour Windows Vista et versions ultérieures, le organization des fichiers d’en-tête a changé et IPPROTO_UDP 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. Les options de socket IPPROTO_UDP sont définies dans le fichier d’en-tête Ws2tcpip.h . Le fichier d’en-tête Ws2def.h ne doit jamais être utilisé directement.

Spécifications

Condition requise Valeur
En-tête
ws2ipdef.h (include ws2tcpip.h) et ws2tcpip.h
Winsock2.h sur Windows Server 2003, Windows XP et Windows 2000