单播、组播、广播介绍:https://blog.csdn.net/ahou2468/article/details/86526509
目录
1.单播、组播、广播关键类说明
DatagramSocket:此类表示用于发送和接收数据报包的套接字。数据报套接字是包传递服务的发送或接收点。在数据报套接字上发送或接收的每个数据包都是单独寻址和路由的。从一台机器发送到另一台机器的多个数据包的路由可能不同,并且可能以任何顺序到达。
在可能的情况下,新构造的DatagramSocket启用了So_Broadcast Socket选项,以允许传输广播数据报。为了接收广播数据包,数据报套接字应该绑定到通配符地址。在某些实现中,当数据报套接字绑定到更具体的地址时,也可能接收广播数据包。
示例:DatagramSocket s=new DatagramSocket(null);s.bind(new InetSocketAddress(8888));相当于:DatagramSocket s=new DatagramSocket(8888);这两种情况都将创建一个可以在UDP端口8888上接收广播的DatagramSocket。
注意:DatagramSocket主要用于单播和广播的套接字;
DatagramPacket:此类表示数据报包,用于发送和接收信息的载体。
数据包用于实现无连接数据包传递服务。每个消息都是基于包中包含的信息从一台机器路由到另一台机器的。从一台机器发送到另一台机器的多个数据包的路由可能不同,并且可能以任何顺序到达。不保证包的传送。
MulticastSocket:多播(组播)数据报套接字类对于发送和接收IP多播(组播)数据包很有用。多播(组播)套接字是一个(UDP)数据报套接字,具有附加的功能,可以加入Internet上其他多播(组播)主机的“组”。
多播(组播)组由D类IP地址和标准UDP端口号指定。D类IP地址的范围为224.0.0.0到239.255.255.255(含)。地址224.0.0.0是保留的,不应使用。
当一个人向多播组发送消息时,所有订阅该主机和端口的接收者都会接收该消息(在数据包的生存时间范围内,请参见下文)。套接字不需要是多播组的成员就可以向其发送消息。
当一个套接字订阅一个多播组/端口时,它接收由其他主机发送到该组/端口的数据报,以及该组和端口的所有其他成员。套接字通过leaveGroup(InetAddress addr)方法放弃组中的成员身份。多个多播套接字可以同时订阅多播组和端口,它们都将接收组数据报。
当前不允许小程序(applets)使用多播套接字。
注意:MulticastSocket用于组播的套接字
InetAddress:此类表示Internet协议(IP)地址。
IP地址是由IP使用的32位或128位无符号数字,这是一个较低级别的协议,在该协议上构建诸如UDP和TCP等协议。IP地址体系结构由 RFC 790: Assigned Numbers, RFC 1918: Address Allocation for Private Internets, RFC 2365: Administratively Scoped IP Multicast, and RFC 2373: IP Version 6 Addressing Architecture定义。InetAddress的实例由一个IP地址和它相应的主机名组成(取决于它是用