我在设置数据报包上的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。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top