package com.ilike.udp;
import java.net.DatagramPacket;
import java.net.InetAddress;
import java.net.MulticastSocket;
public class UdpBroadCast {
// private static String ip="114.113.33.205"; // 服务端ip
//端口
private static int BROADCAST_PORT = 9899;
//组ip
private static String BROADCAST_IP = "224.0.0.1";
//组
static InetAddress inetAddress = null;
//多组数据报套接字
static MulticastSocket multicastSocket = null;
public static void main(String[] args) {
try {
//创建组
inetAddress = InetAddress.getByName(BROADCAST_IP);
//创建服务器
multicastSocket = new MulticastSocket(BROADCAST_PORT);
//当参数为0时,指定数据报停留在本地主机,为1时,指定数据报发送到本地局域网网,为32时,发送到本站点的网络上。为64时,发送到本地区,128时,发送到本大洲,255为全球。
multicastSocket.setTimeToLive(1);
//加入组
multicastSocket.joinGroup(inetAddress);
} catch (Exception e) {
e.printStackTrace();
}
new Thread(new Runnable() {
@Override
public void run() {
//创建数据传输对象
DatagramPacket dataPacket = null;
//被传输的数据
byte[] data ="hello".getBytes();
dataPacket = new DatagramPacket(data, data.length, inetAddress,BROADCAST_PORT);
while(true){
try{
//发送
multicastSocket.send(dataPacket);
Thread.sleep(3000);
System.out.println("再次发送ip地址广播:.....");
} catch (Exception e){
e.printStackTrace();
}
}
}
}).start();
}
}