Java Media Framework始终生成TTL=1的多播数据包
我需要生成一个G711多播音频流,在Java媒体框架中遇到了AVTransmit2示例
基本上这是可行的,但是多播数据包的TTL都设置为1
我发现一些文档表明SessionAddress可以指定一个TTL值,所以我尝试更改它,即。 destAddr=新的会话地址(IP地址,端口,255)
我还发现了一些评论,认为问题可能是由于java默认使用IPv6,所以我尝试通过如下方式启动它,将其强制使用ipv4: 爪哇-贾瓦。网preferIPv4Stack=true-classpath“AVTransmit2javasound://8000239.1.10.65 20480
然而,在wireshark中,数据包仍然具有TTL=1
我用的是JMF2。1.1e
有什么建议可以解决这个问题吗
# 1 楼答案
这大约晚了六个月,但我在寻找解决同样问题的方法时发现了这条线索,以下是我的发现:
我还在创建SessionAddress对象时尝试设置ttl值,但使用wireshark,数据包的ttl值仍然只有1。然而,我在初始化和目标时使用了不同的地址,但当我使用相同的地址时,ttl设置起作用。所以如果你有两个SessionAddress对象,比如
然后你必须使用以下地址:
好的
好的
糟糕的
编辑:似乎只有传递给initialize()的SessionAddress需要设置ttl