| | |
| | | bufferManager.appendData(rawData, rawData.length); |
| | | List<PacketParser.DataPacket> parsedPackets = bufferManager.parsePackets(); |
| | | |
| | | // 处理解析后的数据包 |
| | | // 处理解析后的数据包 |
| | | for (PacketParser.DataPacket p : parsedPackets) { |
| | | // 根据包头类型路由到不同解析器 |
| | | // 根据包头类型路由到不同解析器 |
| | | switch (p.getPacketType()) { |
| | | case 0x01: |
| | | processType01(p,ip,port);break; |
| | |
| | | case 0x03: |
| | | processType03(p,ip,port);break; |
| | | default: |
| | | System.err.println("未知包类型: " + p.getPacketType()); |
| | | System.err.println("未知包类型: " + p.getPacketType()); |
| | | } |
| | | } |
| | | } |
| | | // 示例解析方法(需根据实际协议实现) |
| | | // 示例解析方法(需根据实际协议实现) |
| | | private static void processType01(PacketParser.DataPacket packet,String ip,int port) { |
| | | String hexData = PacketParser.bytesToHexString(packet.getPacket()); |
| | | Dell55AA01Parser.parse(hexData,ip,port); |
| | |
| | | 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) { |
| | |
| | | String hexData = PacketParser.bytesToHexString(packet.getPacket()); |
| | | DellTag55AA03.parse(hexData,ip,port); |
| | | } |
| | | // 其他类型处理方法... |
| | | // 其他类型处理方法... |
| | | |
| | | } |