Java NIO DatagramChannel: невозможно открыть несколько сокетов на одном порту с помощью IPv4 и IPv6Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Java NIO DatagramChannel: невозможно открыть несколько сокетов на одном порту с помощью IPv4 и IPv6

Сообщение Anonymous »

Привет, сообщество Stack Overflow!
Я столкнулся с проблемой во время работы над проектом, включающим каналы датаграмм Java NIO. Моя цель — открыть два сокета на одном порту: один с использованием IPv4, а другой с использованием IPv6. Однако каждый раз, когда я пытаюсь это сделать, при попытке открыть второй сокет я сталкиваюсь с сообщением об ошибке «порт уже используется». Интересно, что если один сокет открыт с помощью IPv4, попытка открыть второй сокет с IPv6 вызывает вышеупомянутую ошибку, и наоборот.
Вот фрагмент соответствующего кода:
Вот фрагмент соответствующего кода:
Вот фрагмент соответствующего кода:
п>

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

// Opening IPv4 socket
DatagramChannel ipv4Channel = DatagramChannel.open(StandardProtocolFamily.INET);
ipv4Channel.bind(new InetSocketAddress(port));

// Opening IPv6 socket
DatagramChannel ipv6Channel = DatagramChannel.open(StandardProtocolFamily.INET6);
ipv6Channel.bind(new InetSocketAddress(port));
Есть ли определенная конфигурация, которую мне нужно настроить, чтобы разрешить открытие нескольких сокетов на одном и том же порту, каждый с разными версиями IP, с использованием Java NIO DatagramChannels?
Любые идеи или предложения будут полезны быть очень оценены. Спасибо!
Я убедился, что порт, к которому я пытаюсь выполнить привязку, доступен и не используется каким-либо другим процессом.

Подробнее здесь: https://stackoverflow.com/questions/785 ... -with-ipv4
Ответить

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

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

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

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

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