Java多播生存时间始终为0

时间:2008-09-26 14:34:20

标签: java oracle sockets multicast ttl

我在设置数据报包上的TTL时遇到问题。我在将数据包发送到multicastSocket之前调用数据包上的setTTL(...)方法但是如果我使用ethereal捕获数据包,则TTL字段始终设置为0

2 个答案:

答案 0 :(得分:6)

有趣的是你应该问这个,因为我只是wrote about this yesterday,我在6个月前遇到了同样的问题。基本上,您必须设置一个特殊的系统属性,告诉JVM使用IPv4堆栈:

-Djava.net.preferIPv4Stack=true

答案 1 :(得分:0)

在Oracle中实现pfranza的修复,在那里你没有命令行:

在使用以下PL / SQL片段调用包含多播调用的java代码之前,按如下所示在每个Oracle会话中设置属性java.net.preferIPv4Stack=true

ret := dbms_java.set_property('java.net.preferIPv4Stack','true');

如果调用成功,它将返回NULL。