Java Multicast Time To Live всегда 0

У меня проблема с настройкой TTL для моих пакетов дейтаграмм. Я вызываю метод setTTL(...) для пакета перед отправкой пакета в multicastSocket, но если я перехватываю пакет с ethereal, поле TTL всегда устанавливается в 0

2 ответа

Решение

Забавно, что вы должны спросить об этом, потому что я только что написал об этом вчера, у меня была такая же проблема около 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.

Другие вопросы по тегам