From fb883547ede83b1c758b1a9a025898ba3f83497a Mon Sep 17 00:00:00 2001 From: 826220679@qq.com <826220679@qq.com> Date: 星期日, 10 八月 2025 23:05:19 +0800 Subject: [PATCH] 新增 --- src/udptcp/UDPPortAReceiver.java | 36 ++++++++++++++++++++++++++---------- 1 files changed, 26 insertions(+), 10 deletions(-) diff --git a/src/udptcp/UDPPortAReceiver.java b/src/udptcp/UDPPortAReceiver.java index fea5a80..29b5f97 100644 --- a/src/udptcp/UDPPortAReceiver.java +++ b/src/udptcp/UDPPortAReceiver.java @@ -33,17 +33,32 @@ socket.receive(packet); executor.execute(() -> { try { - String ip = packet.getAddress().getHostAddress(); - int port = packet.getPort(); - String hexData = bytesToHex(packet.getData(), packet.getLength()); + InetAddress address = packet.getAddress(); + if (address == null) { + System.err.println("Received packet with null address"); + return; + } + + String ip = address.getHostAddress(); + int port = packet.getPort(); + byte[] packetData = packet.getData(); + int length = packet.getLength(); + + if (packetData == null || length <= 0) { + System.err.println("Invalid packet data"); + return; + } + + String hexData = bytesToHex(packetData, length); // 调用时添加本地端口参数 PacketProcessingSystem.storePacket(ip, port, hexData); // 报文查看窗口显示数据 - MessageViewPanel.showData(hexData, ip, port, PORT,"1"); + MessageViewPanel.showData(hexData, ip, port, PORT,"UDPA","ALL","ALL"); // +++ 增加包计数 +++ packetCount.incrementAndGet(); // 关键修复:增加计数器 } catch (Exception e) { - System.err.println("Error processing UDP-A packet: " + e.getMessage()); + System.err.println("Error processing UDP-A packet: "); + e.printStackTrace(); // 添加详细堆栈跟踪 } }); } @@ -89,11 +104,12 @@ } private static String bytesToHex(byte[] bytes, int length) { - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < length; i++) { - sb.append(String.format("%02X", bytes[i])); - } - return sb.toString(); + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < length; i++) { + // 确保生成大写、无分隔符的十六进制 + sb.append(String.format("%02X", bytes[i])); + } + return sb.toString(); } private static byte[] hexStringToByteArray(String hex) { -- Gitblit v1.9.3