UDP接收数据报文,数据帧格式如下图,怎么通过Java代码获取具体的值?
目前拿到了的数据格式byte[]

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
public class UdpReceiver {
public static void main(String[] args) throws Exception {
// 创建DatagramSocket对象
DatagramSocket socket = new DatagramSocket(9876); // 端口号可以根据需要进行更改
// 创建DatagramPacket对象,用于接收数据
byte[] buffer = new byte[1024];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
// 接收数据报文
System.out.println("等待接收数据...");
socket.receive(packet);
System.out.println("收到数据报文: " + packet.getLength()); // 获取数据报文长度
byte[] data = packet.getData(); // 获取数据部分
System.out.println("数据部分: " + new String(data)); // 将数据部分转换为字符串并打印
// 获取报头信息
byte[] header = packet.getHeader(); // 获取报头部分
System.out.println("报头部分: " + new String(header)); // 将报头部分转换为字符串并打印
// 关闭socket连接
socket.close();
}
}