Если вы используете локальный IPv6-адрес для связи, вам, вероятно, нужно установить поле sin6_scope_id
в структуре sockaddr_in6
, чтобы указать, какой интерфейс вы хотите прослушивать. Локальный адрес канала является неоднозначным, поскольку каждому интерфейсу должен быть присвоен локальный адрес канала , и все они используют один и тот же префикс. (fe80::/64
)
Вы, вероятно, должны bind()
свой сокет прослушивания по неопределенному адресу (все нули или ::
), так что это не проблема, но все равно будет проблемой для отправляющей стороны. Если вы не укажете sin6_scope_id
, система не будет знать, на какой интерфейс отправлять пакет.
Чтобы избежать этой проблемы, было бы лучше настроить маршрутизатор IPv6, который будет объявления маршрутизатора , чтобы вы могли получить global unicast (или, как минимум, уникальные локальные ) адреса.