Java实现单播,组播,广播

单播、组播、广播介绍:https://blog.csdn.net/ahou2468/article/details/86526509

目录

 

1.单播、组播、广播关键类说明

2.单播和广播的具体实现

2.1定义套接字管理类

2.2单播或者广播发送数据包类

2.3.单播或者广播接收数据包监听

3.组播的具体实现

3.1定义套接字管理类

3.2组播发送数据包类

3.3组播接收数据包监听


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 NumbersRFC 1918: Address Allocation for Private InternetsRFC 2365: Administratively Scoped IP Multicast, and RFC 2373: IP Version 6 Addressing Architecture定义。InetAddress的实例由一个IP地址和它相应的主机名组成(取决于它是用

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值