Назад | Перейти на главную страницу

Режим двойного стека; привязать к любому адресу, кроме 0.0.0.0

На машине с Windows 7 я установил IPV6_V6ONLY на 0, чтобы разрешить использование сокетов с двумя стеками. Все примеры сокетов с двойным стеком, которые я видел в сети, привязаны к ЛЮБОМУ адресу (0.0.0.0). Привязав к этому адресу, я могу подтвердить, что могу подключиться, используя адрес ip4 или адрес ipv6.

Однако, если я попытаюсь выполнить привязку к любому адресу, отличному от ЛЮБОГО адреса, например loopback (т.е. [:: 1]), на сокете с двойным стеком, я обнаружу, что могу подключиться к этому сокету только с помощью адреса ipv6, то есть Я могу подключиться к [:: 1], но не к 127.0.0.1.

Это ожидаемое поведение? Я не могу найти ничего окончательного в Интернете (в том числе на сайтах stackoverflow). Мне нужно что-то другое сделать?

Спасибо!

Да: если вы привязываетесь к ЛЮБОМУ адресу с параметром IPV6_V6ONLY, установленным на 0, то можно использовать как IPv4, так и IPv6. Если вы привязываетесь к определенному адресу, то можно использовать только этот адрес (и, следовательно, его семейство адресов).