利用UDP Sockets技术实现IP多点传送(二)

2014-11-23 19:54:41 · 作者: · 浏览: 45
ineData=nextLine.getBytes();
  //将数据复制到用于创建数据报的byte数组
  for(int i=0;i
  mcastBuffer[i]=lineData[i];
  }
  ……创建数据报,发送或接收……
  }

MulticastSocket类
  Java的 MulticastSocket类是实施IP多点传送网络特征的关键,它允许我们使用多点传送IP发送或接收UDP数据报。 MulticastSocket的构造器为:
  public MulticastSocket () throws IOException;  //创建一个多点传送socket
  public MulticastSocket(int port)throws IOException;//在指定端口创建一个多点传送socket
  另外,类中其它常用的方法有:
  public void joinGroup(InetAddress mcastaddr)throws IOException{} //加入多点传送组
  public void leaveGroup(InetAddress mcastaddr)throws IOException{} //离开多点传送组
  public synchronized void send(DatagramPacket p,byte ttl) throws IOException{} //发送数据报
  public synchronized void receive(DatagramPacket p,byte ttl) throws IOException{}  //接收数据报
  创建一个DatagramPacket对象之后,我们必须相应地创建一个 MulticastSocket对象,这样,数据报就可以使用send()方法发送了。下面的代码演示了如何创建 MulticastSocket、发送和接收IP多点传送数据报:
  int multiPort=2345; //定义端口号,非超级用户应使用1024以上的端口
  int ttl=1; //设定TTL值
  InetAddress multiAddr=InetAddress.getByName(″224.0.1.100″); //设定多点传送IP
  byteSmultiBytes={H,e,1,1,O}; //定义一个内容为“Hello”的数据报
  //创建多点传送数据报
  DatagramPacket SmultiDatagram new Datagram Packet(SmultiBytes,SmultiBytes,length,multiAddr,multiPort);
  MulticastSocket multiSocket=new MulticastSocket();  //创建多点传送socket
  multiSocket.send(SmultiDatagram,ttl); //发送数据报(不加入到组中)
  ……
  byteRmultiBytes=new byte[256]; //定义一个空数据报,长度为256字节
  //创建接收数据报
  DatagramPacket RmultiDatagram=new DatagramPacket(RmultiBytes,RmultiBytes.length);
  multiSocket.joinGroup(m