//将数据复制到用于创建数据报的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{} //发送数据报
创建一个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