Java多播生存时间始终为0
题
我在设置数据报包上的TTL时遇到问题。我在将数据包发送到multicastSocket之前调用数据包上的setTTL(...)方法但是如果我使用ethereal捕获数据包,则TTL字段始终设置为0
解决方案
有趣的是你应该问这个,因为我只是昨天写了这篇文章,6个月前我遇到了同样的问题。基本上,您必须设置一个特殊的系统属性,告诉JVM使用IPv4堆栈:
-Djava.net.preferIPv4Stack=true
其他提示
在Oracle中实现pfranza的修复,在那里你没有命令行:
在使用以下PL / SQL片段调用包含多播调用的java代码之前,在每个Oracle会话中设置属性 java.net.preferIPv4Stack = true
,如下所示:
ret := dbms_java.set_property('java.net.preferIPv4Stack','true');
如果调用成功,它将返回NULL。
不隶属于 StackOverflow