Это 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's Guide по сетевому программированию, в котором также есть некоторая похожая информация .Рекомендуемое чтение.Спасибо, Майк!