快速业务通道

使用Java制作多点发送程序 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22

使用Java制作多点发送程序

时间:2010-12-25 yesky 林建刚

IP协议是Internet上所有信息的传播手段,UDP(User Datagram Protocol,用户数据报协议)数据报被封装在IP包中,发送到网络上适当的机器。众所周知,大多数IP使用单点发送,即从一个主机发送一个包到另一个主机上。然而,IP协议也具有多点发送的能力,若要使用多点发送时,一个报文标有一组目标主机地址,当报文发出后,整个组都能收到。为支持多点发送,一定范围的IP地址被单独划分出来。这些IP地址是D类地址,其范围是224.0.0.0至239.255.255.255。

IP多点发送(或多点广播)是一种相当新的技术,它是对简单广播的改进。多点广播功能类似于一个单一信息发送到多个接收者的广播,但仅发送给那些等待它的接收者。其思想就是设置一组网络地址作为多点广播地址,其范围是225.0.0.0到239.255.255.255。每一个多点广播地址都被看作一个组。当用户需要从某个地址信息时,加入到该组即可。例如,可能为其股票报价系统设置了地址225.23.32.36作为多点广播地址,如果一个想要接收股票查询报价程序,必须加入到225.23.32.36组中。

一、制作多点发送的基本知识

在使用Java进行多点发送时,它的MulticastSocket类是实现这一功能的关键。MulticastSocket类允许用户发送和接收使用多点发送IP的数据报。若要发送或接收多点广播数据,必须首先创建一个多点广播套接字(多点广播套接字类似于数据报套接字,事实上MulticastSocket是DatagramSocket的一个子类)。若要发送一个数据报时,可使用缺省的端口号创建多点广播套接字,也可以在构造器指定端口号来创建多点广播套接字:

public MulticastSocket()throws IOException

public MulticastSocket(int portNumber)throws IOException

要加入到一个多点广播地址,可使用jionGroup方法;若要脱离一个组,相使用leaveGroup方法:

public void jionGroup(InetAddress multicastAddr)throws IOException

public void leaveGroup(InetAddress multicastAddr)throws IOException

在某些系统中,可能有多重网络接口。这可能会对多点广播带来问题,因为用户需要在一个指定的接口上侦听,通过调用setInterface可选择多点广播套接字所使用的接口:

public void setInterface(InetAddress interface)throws SocketException

通过调用getInterface方法可查询多点广播套接字的接口:

public InetAddress getInterface()throws SocketException

用户在发送多点发送的数据时,使用send方法:

public synchronized void send(DatagramPacket packet, byte timeTolive)throws IOException

其中TTL值指定了数据包应该跨过多少个网络,当TTL为0时,指定数据包应停留在本地主机;当TTL的值为1时,指定数据包发送到本地网络;当TTL的值为32时,意味着只应发送到本站点的网络上;当TTL为64时,意味着数据包应保留在本地区;当TTL的值为128时,意味着数据应保留在本大洲;当TTL为255时,意味着数据包应发送到所有地方;若使用缺省的send方法时,TTL的值为1。

使用Java制作多点发送程序(2)

时间:2010-12-25 yesky 林建刚

二、制作多点发送应用程序

下面就运用Java制作一个多点发送应用程序。其中程序1(MulticastCastSender.java)是一个发送数据报到一个指定多点发送IP地址的程序,该程序运行时使用两个参数:第一个指定发送数据报的多点发送IP地址,另一个则指定侦听应用程序的UDP端口。其中Main()方法保证了这些参数收到后,实例化一个MultiCastSender对象。另外,构造器使用多点发送IP地址的String对象,创建一个InetAddress实例,然后再在动态分配的端口上为发送数据报创建一个MulticastSocket,然后构造器进入一

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号