private DeviceInfo deviceInfo = new DeviceInfo(); //设备信息
private final static String BROADCAST_IP = "255.255.255.255"; //广播范围
private final static int BROADCAST_PORT = 8888; //端口
@Override
public void receiveBroadCast() throws IOException {
log.info(">>>>> 开始监听广播");
DatagramSocket socket = new DatagramSocket(BROADCAST_PORT);
byte[] ackBuf = new byte[1024];
InetAddress address = InetAddress.getByName(BROADCAST_IP);
DatagramPacket ackPacket = new DatagramPacket(ackBuf, ackBuf.length, address, BROADCAST_PORT);
while (true){
socket.receive(ackPacket);
String t = new String(ackPacket.getData(), 0, ackPacket.getLength());
log.info(">>>>> 接收到的广播: {}", t);
String [] dataA = t.split("_");
if (dataA.length == 4) {
deviceInfo.setDeviceIp(dataA[0]);
deviceInfo.setDevicePort(dataA[1]);
deviceInfo.setId(dataA[2]);
deviceInfo.setDeviceType(dataA[3]);
//设备信息插入数据库
deviceInfoServiceImpl.addDeviceInfo(deviceInfo);
}
}
}