欢迎来到天天文库
浏览记录
ID:6135903
大小:157.50 KB
页数:6页
时间:2017-11-18
《基于udp的组播通信》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于UDP的组播通信一般数据报通信是在两台主机之间的点对点通信,称为“单播(Unicast)”。当多台主机同时接收一个数据报时,若采用单播通信,则源主机需要给每个接收主机发送一个相同的数据报;若采用组播通信,则源主机只需发送一个数据报即可到达每个接收主机,从而节省了网络带宽,降低了发送主机的负荷。组播(Multicast)是一种特殊的数据报传输方式,它将具有相同需求的主机加入到某一个组,向组发送的信息,其所有成员均可接收到。组是用组播地址(D类IP地址:224.0.0.0-239.255.255.255)和标准UDP端口号来标识的,即待发送数据报的目的地址为一个组播地址。主机可以申
2、请加入某个组播地址所标识的组,也可以从该组中退出。MulticastSocket类为了实现组播通信,java.net包中有相应的MulticastSocket类。多播数据报套接字类MulticastSocket是DatagramSocket类的子类,它用来发送和接收IP多播包,同时可以沿用数据报通信的一些主要方法。其构造方法与常用方法如表所示。构造方法功能·publicMulticastSocket()throwsIOException·publicMulticastSocket(intport)throwsIOException·publicMulticastSocket(Soc
3、ketAddressbindaddr)throwsIOException·创建多播套接字·创建多播套接字并将其绑定到特定端口·创建绑定到指定套接字地址的MulticastSocket常用方法功能·publicvoidjoinGroup(InetAddressmcastaddr)·publicvoidjoinGroup(SocketAddressmcastaddr,NetworkInterfacenetIf)·publicvoidleaveGroup(InetAddressmcastaddr)·publicvoidleaveGroup(SocketAddressmcastaddr,N
4、etworkInterfacenetIf)·加入多播组·加入指定接口上的指定多播组·离开多播组·离开指定本地接口上的多播组组播发送程序(服务器)importjava.net.*;publicclassBroadCastextendsThread{Strings="天气预报,最高温度32度,最低温度25度";intport=5858;//组播的端口InetAddressgroup=null;//组播组的地址MulticastSocketsocket=null;//多点广播套接字BroadCast(){try{group=InetAddress.getByName("239.255.8
5、.0");//设置组播组的地址为239.255.8.0socket=newMulticastSocket(port);//多点组播套接字将在port端口播出socket.setTimeToLive(1);//设置组播套接字发送数据报范围为本地网络socket.joinGroup(group);//加入多播组,加入group后,socket发送的数据报}//可以被加入到group中的成员接收到catch(Exceptione){System.out.println("Error:"+e);}}publicvoidrun(){while(true){try{DatagramPacket
6、packet=null;//待广播的数据包bytedata[]=s.getBytes();packet=newDatagramPacket(data,data.length,group,port);System.out.println(newString(data));socket.send(packet);//多播数据包sleep(2000);}catch(Exceptione){System.out.println("Error:"+e);}}}publicstaticvoidmain(Stringargs[]){newBroadCast().start();}}11.5.2组
7、播发送程序(服务器)(续一)运行方法:在待运行类的主目录下编写并运行MulticastDatagramSendDemo.bat文件,其内容如下:javadatagram.MulticastDatagramSendDemopause图11-12例11-11组播发送程序(服务器)的输出结果11.5.3组播接收程序(客户端)P414【例11-12】组播接收程序(客户端)。程序清单11-12:MulticastDatagramReceiveDemo.javajavadatag
此文档下载收益归作者所有