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