Настройка каналов 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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