setTimeToLive
public void setTimeToLive(int ttl)
throws IOException
该方法用于设置在此 MulticastSocket 上发出的多播数据包的默认生存时间,以便控制多播的范围。
ttl 必须在 0 <= ttl <= 255 范围内,否则将抛出 IllegalArgumentException。
本人在两台不同的服务器上做了测试,发现了一个不为人知的问题。
服务器A : JDK1.6_12
服务器B : JDK1.6_18
本人写了一段相同的代码,发送组播数据包,同时使用setTimeToLive方法来设置数据包的TTL值。但是惊奇的发现,程序在服务器A所发出的数据包中的TTL值,并没有改变,始终是默认值1。 而在服务器B上,数据包中的TTL可以通过setTimeToLive方法随便设置。
因此我猜测,是JDK出了问题...在JDK1.6_12及以下版本,此方法失效。 (JDK1.6_6也做了测试)
在JDK1.6_18以上版本有效(对JDK1.6_22也做了测试)。
至于具体在哪一个版本修复了此问题,本人没有进一步调查,望大牛指教。
分享到:
相关推荐
Multicastsocket
MulticastSocket收发小例子
MulticastSocket编程聊天不需要服务端的网络聊天工具
MulticastSocket编程聊天不需要服务端的网络聊天工具
MulticastSocket编程聊天不需要服务端的网络聊天工具
MulticastSocket进行多点广播时所有的通信实体都是平等的,将自己的数据报发送到多点广播IP地址,包含了ChatFrame框加,有as版本和ec版本
Java网络编程_MulticastSocket类的使用
一个word文档,详细的教导你如何在java中使用MulticastSocket。文件中有很大详细的例子,生动而易懂。
MulticastSocket网络编程(未完成版) 不需要服务端的聊天程序
MulticastSocket编程聊天不需要服务端的网络聊天工具
MulticastSocket编程聊天不需要服务端的网络聊天工具
1. 创建一个用于发送和接收的MulticastSocket组播套接字对象 2. 创建一个指定缓冲区大小及组播地址和端口的DatagramPacket组播数据包对象 3. 使用组播套接字joinGroup(),将其加入到一个组播 4. 使用组播套接字的send...
主要为大家详细介绍了java使用MulticastSocket实现多点广播,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
主要为大家详细介绍了Android使用MulticastSocket实现多点广播图片,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Java网络编程_MulticastSocket类的使用.pdf
该程序包含一个用于广播的Socket派生类和一个演示实例!
通过MulticastSocket将服务器的IP地址及端口广播每隔4s出去,然后开启每个ip及port对应的tcp等待连接,TCP的等待连接时间为1s,等待接收时间为2s。广播接收者不断接受广播信息并过滤,如果与自己有关则返回信息。