Настройка каналов Java NIO для IPv4 и IPv6 отдельноAndroid

Форум для тех, кто программирует под Android
Anonymous
Настройка каналов Java NIO для IPv4 и IPv6 отдельно

Сообщение Anonymous »

Я изучал каналы Java NIO для проекта, целью которого было отдельно открыть сокеты для конфигураций IPv4 и IPv6. Хотя DatagramChannel предоставляет возможность указать семейство IP с помощью открытого метода, я столкнулся с ограничением, при котором я не могу открыть другой сокет с другим семейством IP на том же порту, если сокет уже открыт для другого семейства на том же порту. .
Хотя я опубликовал соответствующий вопрос по этой проблеме, мне также интересно, есть ли способ указать семейство IP при использовании ServerSocketChannel или SocketChannel. Я долго искал, но не смог найти открытых вариантов, в которых можно было бы указать семейство IP.
Вот фрагмент подхода, который я попробовал с DatagramChannel:

Код: Выделить всё

// Attempting to open sockets for IPv4 and IPv6 separately
DatagramChannel ipv4Channel = DatagramChannel.open(StandardProtocolFamily.INET);
ipv4Channel.bind(new InetSocketAddress(port));

DatagramChannel ipv6Channel = DatagramChannel.open(StandardProtocolFamily.INET6);
ipv6Channel.bind(new InetSocketAddress(port)); // Throws "port already in use" error

Существует ли метод или техника для достижения такого разделения конфигурации с помощью ServerSocketChannel или SocketChannel? Ваши идеи и советы будут чрезвычайно полезны.
Заранее спасибо!
Я попробовал изучить документацию и посмотреть, смогу ли я найти пример проекта. для моего варианта использования, но пока безуспешно.

Подробнее здесь: https://stackoverflow.com/questions/785 ... separately

Вернуться в «Android»