您的位置:首页 > 编程语言 > Java开发

java 实现局域网多播

2015-07-09 18:03 369 查看
要想用java编程实现发送多播信息,需要经历几个基本的编程步骤。能完成以下这几步,就是可以用Java程序来实现多播信息的
发送。
  (1)确定发送消息的具体内容;
    String msg="hello";
    (2)选用专门为多播指定的D类IP地址(224.0.0.1到239.255.255.255),创建一个多播组
      InetAddress group=InetAdress.getByName(228.5.6.7);
    (3)使用指定端口(一般选1024以上的端口)建立多播套接字

     MulticastSocket s=new MulticastSocket(6798);
   (4)加入多播组。

     s.joinGroup(group);
   (5)创建一个数据报封装多播信息
    DatagramPacket hi=new DatagramPacket(msg.getByte(),msg.length().group(),group,6789);
  (6) 发送消息
    s.send(hi)

下面给出具体实现例子:

发送消息端 Sender.java
import java.net.DatagramPacket;
import java.net.InetAddress;
import java.net.MulticastSocket;
import java.net.UnknownHostException;

public class Sender {

public static void main(String[] args) {
//待发送的消息

try {
byte[] arb=new byte[]{'h','e','l','l','o'};
//创建一个多播套接字 ip:230.0.0.1 端口:7777
InetAddress inetadress=InetAddress.getByName("230.0.0.8");
DatagramPacket datagram=new DatagramPacket(arb,arb.length,inetadress,7777);
//新建一个数据包,封装多播消息并将其发出去
MulticastSocket multicastSocket=new MulticastSocket();
multicastSocket.send(datagram);

System.out.println("发送消息");

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}
接收消息端 Receiver.java
import java.net.DatagramPacket;
import java.net.InetAddress;
import java.net.MulticastSocket;

public class Receiver {
public static void main(String[] args){
try{
//加入到Ip为230.0.1,端口为7777的多播组中,并通过创建一个多播套接字来接受多播消息
MulticastSocket multicastsocket=new MulticastSocket(7777);
InetAddress inetaddress=InetAddress.getByName("230.0.0.8");
multicastsocket.joinGroup(inetaddress);
System.out.println("接收到消息");
//无线循环接收来自发送端的消息
while(true){
//System.out.print(1);
byte[] arb=new byte[100];
DatagramPacket datagrampacket=new DatagramPacket(arb,arb.length);
//	System.out.print(1);
multicastsocket.receive(datagrampacket);
//	System.out.print(1);
System.out.println(new String(arb));

}
}catch(Exception e){

}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: