#java #nio
#java #nio
Вопрос:
У меня есть тестовый пример, который работает в таких ситуациях
- ipv4, онлайн, nio (-Djava.net.preferIPv4Stack=true)
- ipv4, отключен (отключить Wi-Fi), nio (-Djava.net.preferIPv4Stack= true)
- ipv6, онлайн, nio
ЗАТЕМ окончательный ipv6, автономный (без подключения Wi-Fi), буквально никогда не подключается и просто зависает до истечения времени ожидания. первый вызов SocketChannel.connect возвращает false, что нормально, поэтому он инициирует асинхронное соединение с SelectableChannel.register. К сожалению, он зависает где-то в коде jdk ….. хммм, я думаю, я могу сделать дамп стека следующим и добавить больше информации.
Кто-нибудь видел эту проблему раньше? jdk 9.0.4
(Я думаю, мне также нужно отключить вилку и перейти на jdk10, что, надеюсь, будет легко — пальцы скрещены).
ОБНОВЛЕНИЕ 1: Ok Profiler не помог, поскольку это nio, он асинхронный, что означает, что он находится в ожидании селектора (ожидаемый и ожидаемый запуск — это все), а другой поток находится в будущем, ожидая его разрешения, пока селектор не сработает и не завершит соединение, которое никогда не происходит (только в автономном режиме). Думаю, я обновлю jdk и протестирую это тоже.
ОБНОВЛЕНИЕ 2: обновлено до jdk12 и те же результаты.
У кого-нибудь еще есть тесты через localhost, где сервер привязывается к порту 0, а клиент подключается к порту, который в конечном итоге привязывается к тому месту, где клиент находится в nio И использует ipv6? Очень раздражает, когда набор тестов не работает в автономном режиме и работает только в Сети, поэтому я пытаюсь это исправить.
спасибо, Дин
Комментарии:
1. Является ли ваш тест привязкой / подключением к локальному адресу IPv6, когда wiki отключен? Какая это операционная система. Вы пытались указать идентификатор области для идентификации интерфейса обратной связи?