Я столкнулся с проблемой во время работы над проектом, включающим каналы датаграмм 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));
Любые идеи или предложения будут полезны быть очень оценены. Спасибо!
Я убедился, что порт, к которому я пытаюсь выполнить привязку, доступен и не используется каким-либо другим процессом.
Подробнее здесь: https://stackoverflow.com/questions/785 ... -with-ipv4