Время жизни многоадресной рассылки Java всегда равно 0
Вопрос
У меня проблема с настройкой TTL для пакетов датаграмм.Я вызываю метод setTTL(...) для пакета перед отправкой пакета в multicastSocket, но если я захватываю пакет с помощью ethereal, поле TTL всегда установлено в 0.
Решение
Забавно, что ты спрашиваешь об этом, потому что я просто писал об этом вчера, У меня была такая же проблема около 6 месяцев назад.По сути, вам нужно установить специальное системное свойство, сообщающее JVM использовать стек IPv4:
-Djava.net.preferIPv4Stack=true
Другие советы
Чтобы реализовать исправление pfranza в Oracle, где у вас нет командной строки:
Установить свойство java.net.preferIPv4Stack=true
в каждом сеансе Oracle следующим образом перед вызовом кода Java, содержащего многоадресный вызов, с помощью следующего фрагмента PL/SQL:
ret := dbms_java.set_property('java.net.preferIPv4Stack','true');
Если вызов успешен, он вернет NULL.