From 8d662de2fd262b3a485f16e197cb4d0ca2a61cdf Mon Sep 17 00:00:00 2001
From: zsh_root <979909237@qq.com>
Date: 星期三, 10 十二月 2025 17:03:47 +0800
Subject: [PATCH] 发布版V1.0
---
src/jiexi/PacketProcessingSystem.java | 32 ++++++++++++++++----------------
1 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/src/jiexi/PacketProcessingSystem.java b/src/jiexi/PacketProcessingSystem.java
index 178e972..6c7c4e8 100644
--- a/src/jiexi/PacketProcessingSystem.java
+++ b/src/jiexi/PacketProcessingSystem.java
@@ -6,13 +6,13 @@
import java.util.concurrent.Executors;
public class PacketProcessingSystem {
- // 线程安全的报文存储队列(集合A)
+ // 绾跨▼瀹夊叏鐨勬姤鏂囧瓨鍌ㄩ槦鍒楋紙闆嗗悎A锛�
private static final ConcurrentLinkedQueue<HexPacket> packetQueue = new ConcurrentLinkedQueue<>();
private static final AtomicBoolean isRunning = new AtomicBoolean(false);
private static final ExecutorService parserExecutor = Executors.newSingleThreadExecutor();
private static Thread parserThread;
private static boolean a1=true;
- // 报文存储结构
+ // 鎶ユ枃瀛樺偍缁撴瀯
public static class HexPacket {
public final String ip;
public final int port;
@@ -43,18 +43,18 @@
}
}
- // 接收端存储报文(UDPPortAReceiver中调用)
+ // 鎺ユ敹绔瓨鍌ㄦ姤鏂囷紙UDPPortAReceiver涓皟鐢級
public static void storePacket(String ip, int port, String hexData) {
if(a1) {
startProcessing();
a1=false;
}
- if (packetQueue.size() < 100000) { // 限制队列大小防止OOM
+ if (packetQueue.size() < 100000) { // 闄愬埗闃熷垪澶у皬闃叉OOM
packetQueue.offer(new HexPacket(ip, port, hexData, System.currentTimeMillis()));
}
}
- // 启动解析系统
+ // 鍚姩瑙f瀽绯荤粺
public static void startProcessing() {
if (isRunning.get()) return;
isRunning.set(true);
@@ -63,22 +63,22 @@
while (isRunning.get()) {
HexPacket packet = packetQueue.poll();
if (packet == null) {
- Thread.yield(); // 队列为空时让出CPU
+ Thread.yield(); // 闃熷垪涓虹┖鏃惰鍑篊PU
continue;
}
try {
- // 转换HEX为字节数据
+ // 杞崲HEX涓哄瓧鑺傛暟鎹�
byte[] rawData = PacketParser.hexStringToBytes(packet.hexData);
String ip=packet.getIp();
int port=packet.getPort();
- // 追加到缓冲区并解析
+ // 杩藉姞鍒扮紦鍐插尯骞惰В鏋�
bufferManager.appendData(rawData, rawData.length);
List<PacketParser.DataPacket> parsedPackets = bufferManager.parsePackets();
- // 处理解析后的数据包
+ // 澶勭悊瑙f瀽鍚庣殑鏁版嵁鍖�
for (PacketParser.DataPacket p : parsedPackets) {
- // 根据包头类型路由到不同解析器
+ // 鏍规嵁鍖呭ご绫诲瀷璺敱鍒颁笉鍚岃В鏋愬櫒
switch (p.getPacketType()) {
case 0x01:
processType01(p,ip,port);break;
@@ -89,11 +89,11 @@
case 0x03:
processType03(p,ip,port);break;
default:
- System.err.println("未知包类型: " + p.getPacketType());
+ System.err.println("鏈煡鍖呯被鍨�: " + p.getPacketType());
}
}
} catch (Exception e) {
- System.err.println("解析错误: " + e.getMessage());
+ System.err.println("瑙f瀽閿欒: " + e.getMessage());
}
}
});
@@ -102,7 +102,7 @@
parserThread.start();
}
- // 停止解析系统
+ // 鍋滄瑙f瀽绯荤粺
public static void stopProcessing() {
isRunning.set(false);
parserExecutor.shutdownNow();
@@ -111,7 +111,7 @@
}
}
- // 示例解析方法(需根据实际协议实现)
+ // 绀轰緥瑙f瀽鏂规硶锛堥渶鏍规嵁瀹為檯鍗忚瀹炵幇锛�
private static void processType01(PacketParser.DataPacket packet,String ip,int port) {
String hexData = PacketParser.bytesToHexString(packet.getPacket());
Dell55AA01Parser.parse(hexData,ip,port);
@@ -120,7 +120,7 @@
private static void processType02(PacketParser.DataPacket packet,String ip,int port) {
String hexData = PacketParser.bytesToHexString(packet.getPacket());
Dell55AA02Parser.parse(hexData,ip,port);
- // 实际业务逻辑
+ // 瀹為檯涓氬姟閫昏緫
}
private static void processType12(PacketParser.DataPacket packet,String ip,int port) {
@@ -132,5 +132,5 @@
String hexData = PacketParser.bytesToHexString(packet.getPacket());
DellTag55AA03.parse(hexData,ip,port);
}
- // 其他类型处理方法...
+ // 鍏朵粬绫诲瀷澶勭悊鏂规硶...
}
--
Gitblit v1.10.0