Поделиться через


Параметры сокета IPPROTO_UDP

В следующей таблице описаны IPPROTO_UDP параметры сокетов, которые применяются к сокетам, созданным для семейств адресов IPv4 и IPv6 (AF_INET и AF_INET6), с параметром протокола для функции сокета , указанной в качестве UDP (IPPROTO_UDP). Дополнительные сведения о получении и настройке параметров сокета см. на справочных страницах функции getsockopt и setsockopt .

Чтобы перечислить протоколы и обнаружить поддерживаемые свойства для каждого установленного протокола, используйте функцию WSAEnumProtocols, WSCEnumProtocols или WSCEnumProtocols32 .

Параметры

Параметр Получить Присвойте параметру Тип Optval Описание:
UDP_CHECKSUM_COVERAGE (ws2tcpip.h) да да DWORD (логическое значение) При значении TRUE UDP-датаграммы отправляются с контрольной суммой.
UDP_NOCHECKSUM (ws2tcpip.h) да да DWORD (логическое значение) При значении TRUE UDP-датаграммы отправляются с контрольной суммой нуля. Требуется для поставщиков услуг. Если у поставщика услуг нет механизма отключения вычисления контрольной суммы UDP, он может просто сохранить этот параметр без каких-либо действий. Этот параметр не поддерживается для IPv6.
UDP_RECV_MAX_COALESCED_SIZE (ws2ipdef.h; include ws2tcpip.h) да да DWORD Если задано значение, отличное от нуля, несколько полученных датаграмм можно объединить в один буфер сообщений, прежде чем указывать приложению. Значение параметра представляет максимальный размер сообщения в байтах для объединенных сообщений, которые можно указать приложению. Необъединенные сообщения, превышающие значение параметра, могут быть указаны. Значение по умолчанию равно 0 (без объединения). Датаграммы будут объединяться только в том случае, если они исходят из того же исходного адреса и порта. Все диаграммы данных, объединенные, будут иметь одинаковый размер, за исключением последней датаграммы, которая может быть меньше. Если приложение хочет получить размеры диаграмм данных (за исключением последней датаграммы, которая может отличаться), которые были объединялись, необходимо использовать API получения, поддерживающий сведения об управлении (например , LPFN_WSARECVMSG (WSARecvMsg)). Размер всего сообщения, кроме последнего, можно найти в сообщении UDP_COALESCED_INFO элемента управления, который имеет тип DWORD. Для обеспечения безопасности типов приложение должно использовать функции WSAGetUdpRecvMaxCoalescedSize и WSASetUdpRecvMaxCoalescedSize вместо параметра сокета напрямую.
UDP_SEND_MSG_SIZE (ws2ipdef.h; include ws2tcpip.h) да да DWORD Если задано значение, отличное от нуля, буферы, отправляемые приложением, разбиваются на несколько сообщений сетевым стеком. Значение параметра представляет размер каждого разбитого сообщения. Значение параметра представлено в байтах. Размер последнего сегмента может быть меньше значения параметра. Значение по умолчанию равно 0 (без сегментации). Чтобы избежать фрагментации IP-адресов, приложение должно задать значение, которое меньше MTU пути к назначениям. Для обеспечения безопасности типов приложение должно использовать функции WSAGetUdpSendMessageSize и WSASetUdpSendMessageSize вместо параметра сокета напрямую.

Поддержка устаревших Windows вариантов IPPROTO_UDP

UDP_CHECKSUM_COVERAGE недоступно в Windows 2000 и Windows NT4. UDP_CHECKSUM_COVERAGE и UDP_NOCHECKSUM недоступны на Windows 9x/Me.

Remarks

В microsoft Windows Software Development Kit (SDK), выпущенном для Windows Vista и более поздних версий, организация файлов заголовков изменилась, и уровень IPPROTO_UDP определен в файле заголовка Ws2def.h, который автоматически включается в файл заголовка Winsock2.h. Параметры сокета IPPROTO_UDP определены в файле заголовка Ws2tcpip.h . Файл заголовка Ws2def.h никогда не следует использовать напрямую.

Требования

Требование Значение
Заголовок
ws2ipdef.h (include ws2tcpip.h) и ws2tcpip.h
Winsock2.h на Windows Server 2003, Windows XP и Windows 2000