Ответ 1
Его IPv4, выраженный через IPv6, так что приложение должно поддерживать только один стек IP.
Возможность ссылаться на адреса IPv4 через нотацию IPv6 означает, что я могу работать над тем, чтобы поддержка IPv6 была действительно надежной в моем приложении, и не нужно беспокоиться о дублировании усилий.
В настоящее время некоторые дистрибутивы по умолчанию отключают совместимость с IPv4 (например, Debian), а также Windows по умолчанию. Чтобы учесть это как программиста, вы должны привязать два сокета: один сокет IPv4 и один сокет IPv6 с флагом IPV6_V6ONLY
(который заставляет его связывать только IPv6 без совместимости с IPv4, независимо от состояния /proc/sys/net/ipv6/bindv6only
).
В комментариях ниже Майк связал меня с этим замечательным сайтом с информацией о том, как вы должны использовать sockaddr_storage для независимого от AF_ программирования (который имеет очень важно, решите ли вы перейти на AF_INET6 или решили использовать AF_INET и AF_INET6 бок о бок). Также мне нравится Beej Guide to Network Programming, где некоторая аналогичная информация. Рекомендуемое чтение. Спасибо, Майк!