package com.ruoyi.common.utils; import com.alibaba.fastjson.JSON; import com.ruoyi.common.config.RadarStatusWebSocket; import com.ruoyi.common.core.domain.entity.DataResponse; import java.io.DataInputStream; import java.io.InputStream; import java.math.BigInteger; import java.net.InetSocketAddress; import java.net.Socket; import java.util.ArrayList; import java.util.List; public class SocketUtil { public static DataResponse getData(Socket socket , String radarLocation , String radarIp) { DataResponse dataResponse = new DataResponse(); dataResponse.setRadarIp(radarIp); dataResponse.setRadarLocation(radarLocation); try { boolean connected = socket.isConnected(); if (!connected) { System.out.println("雷达:" + radarIp + "===" + radarLocation + ": 连接异常:{}" + connected); dataResponse.setStatus(0); dataResponse.setData(null); return dataResponse; } InputStream inputStream = socket.getInputStream(); // 获取输入流 int available = inputStream.available(); byte[] buffer = new byte[available]; inputStream.read(buffer, 0, available); String hex = new BigInteger(1, buffer).toString(16); if (!"0".equals(hex)) { hex = "0" + hex; List decimal = new ArrayList<>(); List strings = BitUtils.convertToArray(hex); for (String string : strings) { int s = BitUtils.covert(string); decimal.add(s); } dataResponse.setData(decimal); dataResponse.setStatus(1); RadarStatusWebSocket.sendToAll(JSON.toJSONString(dataResponse)); return dataResponse; } } catch (Exception e) { System.out.println("读取数据异常:" + radarIp); } dataResponse.setRadarIp(radarIp); dataResponse.setRadarLocation(radarLocation); dataResponse.setStatus(0); dataResponse.setData(null); return dataResponse; } }