Время жизни многоадресной рассылки Java всегда равно 0

StackOverflow https://stackoverflow.com/questions/139909

Вопрос

У меня проблема с настройкой 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top