У меня есть сервер, к которому мне нужно подключиться. Мой клиент написан на Dart и привязывает сокет следующим образом:
static Future<RawDatagramSocket> rDgS =
RawDatagramSocket.bind(InternetAddress.anyIPv4, 50943);
Могу ли я использовать что-то еще, чтобы не указывать версию IP-протокола, чтобы он подключался как к сетям IPv4, так и к сетям только IPv6? Я использую сокеты UDP.
Я пробовал как anyIPv4, так и IPv6, используя IP-адреса обоих серверов (IPv4 и IPv6), поскольку у меня нет DNS-имени хоста для моего сервера. Только любой IPv4 работает с адресом IPv4.
Чтобы принимать соединения IPv6, у вас должен быть адрес IPv6. То же самое для приема IPv4. Точно так же для подключения вы оба должны использовать один и тот же протокол. IPv4 и IPv6 не взаимозаменяемы.
IPv4 и IPv6 — это два совершенно разных и несовместимых протокола. Вы подключаетесь к узлу IPv4 с помощью IPv4, а к узлу IPv6 подключаетесь с помощью IPv6. Оба IP-адреса могут работать на одном и том же интерфейсе, и они являются отдельными, но IPv4 не может напрямую подключаться к IPv6, и наоборот.