From 1bda9524add969e315d870f284046ecf1097f956 Mon Sep 17 00:00:00 2001
From: 826220679@qq.com <826220679@qq.com>
Date: 星期日, 24 八月 2025 18:01:25 +0800
Subject: [PATCH] 修改

---
 src/udptcp/UDPPortAReceiver.java |   37 +++++++++++++++++++++++++++----------
 1 files changed, 27 insertions(+), 10 deletions(-)

diff --git a/src/udptcp/UDPPortAReceiver.java b/src/udptcp/UDPPortAReceiver.java
index fea5a80..6739b3f 100644
--- a/src/udptcp/UDPPortAReceiver.java
+++ b/src/udptcp/UDPPortAReceiver.java
@@ -8,6 +8,7 @@
 
 import dell_system.MessageViewPanel;
 import dell_targets.Dell_SystemConfiguration;
+import publicsWay.PacketProcessingSystem;
 
 public class UDPPortAReceiver {
 	public static final int PORT =Dell_SystemConfiguration.hexport;
@@ -33,17 +34,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 +105,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();
+	    if (bytes == null || length <= 0) return "";
+	    StringBuilder sb = new StringBuilder();
+	    for (int i = 0; i < length && i < bytes.length; i++) {
+	        sb.append(String.format("%02X", bytes[i] & 0xFF));
+	    }
+	    return sb.toString();
 	}
 
 	private static byte[] hexStringToByteArray(String hex) {

--
Gitblit v1.9.3