package tanzhen;
import cn.it62.pojo.Tz002;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class Demo {
//数据接收端口
public static final int DEFAULT_PORT = 9900;
//信息最大长度
public static final int MAX_MSG_LEN = 1600;
public static ExecutorService dataHandlePool = Executors
.newFixedThreadPool(64);
public static void start(int port) {
try {
DatagramSocket udp = new DatagramSocket(port);
DatagramPacket dPacket;
while (true) {
Tz002 tz002 = new Tz002();
dPacket = new DatagramPacket(new byte[MAX_MSG_LEN], MAX_MSG_LEN);
udp.receive(dPacket);
String result = new String(dPacket.getData(), 0, dPacket.getLength());
//探针mac
String mac1 = result.substring(0, 12);
tz002.setMac1(mac1);
//探测到的设备mac
String mac2 = result.substring(13, 25);
tz002.setMac2(mac2);
//信号强度
String xhqd = result.substring(26, 29);
tz002.setXhqd(xhqd);
//WiFi信号类别(末位数的值为0、4、8时,分别表示抓取到的WiFi信号为“管理”帧、“控制”帧、“数据”帧)
String type = result.substring(30, 32);
tz002.setType(type);
//探针抓取到WiFi信号的时间
String time = result.substring(33, result.length());
tz002.setTime(time);
//加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");
String jdbc = "jdbc:mysql://192.168.0.9:3306/tz?useUnicode=true&characterEncoding=utf8&useSLL=false&serverTimezone=Asia/Shanghai";
//连接到数据库
Connection conn = DriverManager.getConnection(jdbc, "root", "root");
//容器
Statement state = conn.createStatement();
//SQL语句
String sql = "insert into tz002 (mac1,mac2,xhqd,type,time) values(" + "'" + mac1 + "'" + ",'" + mac2 + "'" + ",'" + xhqd + "'" + ",'" + type + "'" + ",'" + time + "'" + ")";
//执行SQL语句
state.executeUpdate(sql);
//关闭通道
conn.close();
System.out.println(result);
}
} catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
if (args != null && args.length == 1) {
start(Integer.parseInt(args[0]));
} else {
start(DEFAULT_PORT);
}
}
}
xxx探针设备获取数据并存入数据库
最新推荐文章于 2022-09-15 11:57:50 发布