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


структура IPV6_MREQ (ws2ipdef.h)

Структура ipv6_mreq предоставляет сведения о группе многоадресной рассылки для адресов IPv6.

Синтаксис

typedef struct ipv6_mreq {
  IN6_ADDR ipv6mr_multiaddr;
  ULONG    ipv6mr_interface;
} IPV6_MREQ, *PIPV6_MREQ;

Члены

ipv6mr_multiaddr

Адрес группы многоадресной рассылки IPv6.

ipv6mr_interface

Индекс интерфейса локального интерфейса, к которому должна быть присоединена или удалена группа многоадресной рассылки. Если этот элемент задает индекс интерфейса 0, используется многоадресный интерфейс по умолчанию.

Комментарии

Структура ipv6_mreq используется с IPv6-адресами. Структура ipv6_mreq используется с параметрами сокета IPV6_ADD_MEMBERSHIP, IPV6_DROP_MEMBERSHIP, IPV6_JOIN_GROUP и IPV6_LEAVE_GROUP . Параметры сокета IPV6_JOIN_GROUP и IPV6_ADD_MEMBERSHIP определены как одинаковые. Параметры сокета IPV6_LEAVE_GROUP и IPV6_DROP_MEMBERSHIP определены как одинаковые.

В Windows Vista и более поздних версиях доступен набор параметров сокета для многоадресного программирования, поддерживающего адреса IPv6 и IPv4. Эти параметры сокета не зависят от IP-адресов и могут использоваться как для IPv6, так и для IPv4. Эти не зависящие от IP-адреса параметры используют структуры GROUP_REQ и GROUP_SOURCE_REQ и являются предпочтительными вариантами сокетов для многоадресного программирования в Windows Vista и более поздних версий.

Структура ipv6_mreq является IPv6-эквивалентом структуры ip_mreq на основе IPv4.

Функцию GetAdaptersAddresses можно использовать для получения сведений об индексе интерфейса, необходимых для элемента ipv6mr_interface .

Структура ipv6_mreq и параметры сокета уровня IPPROTO_IPV6 , которые используют эту структуру, допустимы только для сокетов datagram и необработанных сокетов (тип сокета должен быть SOCK_DGRAM или SOCK_RAW).

Рекомендуется всегда указывать локальный индекс интерфейса IPv6 в элементе ipv6mr_interface структуры ipv6_mreq , а не использовать интерфейс по умолчанию. Это особенно важно на компьютерах с несколькими сетевыми интерфейсами и несколькими общедоступными IPv6-адресами.

Интерфейс по умолчанию, используемый для многоадресной рассылки по протоколу IPv6, определяется сетевым стеком в Windows. В Windows Vista и более поздних версиях приложение может определить интерфейс по умолчанию, используемый для многоадресной рассылки IPv6, с помощью функции GetIpForwardTable2 для получения таблицы маршрутизации IPv6. Сетевой интерфейс с наименьшим значением для метрики маршрутизации для адреса многоадресной рассылки IPv6 назначения (блок адресов IPv6 FF00::/8) является интерфейсом по умолчанию для многоадресной рассылки IPv6. Таблицу маршрутизации также можно отобразить из командной строки с помощью следующей команды:

печать маршрута

Параметр сокета IPV6_MULTICAST_IF можно использовать, чтобы задать интерфейс по умолчанию для отправки многоадресных пакетов IPv6. Этот параметр сокета не изменяет интерфейс по умолчанию, используемый для получения пакетов многоадресной рассылки IPv6.

Типичное многоадресное приложение IPv6 использует параметр сокета IPV6_ADD_MEMBERSHIP или IPV6_JOIN_GROUP со структурой ipv6_mreq для присоединения к группе многоадресной рассылки и прослушивания многоадресных пакетов в определенном интерфейсе. Параметр сокета IPV6_MULTICAST_IF будет использоваться для настройки интерфейса для отправки многоадресных пакетов IPv6 в группу многоадресной рассылки. Наиболее распространенным сценарием является многоадресное приложение, которое прослушивает и отправляет в одном интерфейсе группу многоадресной рассылки. Многоадресное приложение может использовать несколько сокетов с одним сокетом для прослушивания и одним или несколькими сокетами для отправки.

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

Примечание Производная PIP6_MREQ структура определяется только в Windows SDK, выпущенных с Windows Vista и более поздних версий. GROUP_REQ и GROUP_SOURCE_REQ структуры и являются предпочтительными вариантами сокетов для многоадресного программирования в Windows Vista и более поздних версий.
 

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Верхняя часть ws2ipdef.h (включая Ws2tcpip.h)

См. также раздел

GROUP_REQ

GROUP_SOURCE_REQ

GetAdaptersAddresses

GetIpForwardTable2

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

Многоадресное программирование

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

ip_mreq