826220679@qq.com
昨天 1bda9524add969e315d870f284046ecf1097f956
src/udptcp/UDPPortBReceiver.java
@@ -2,14 +2,17 @@
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.nio.charset.StandardCharsets;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicLong;
import publicsWay.PacketProcessingSystem;
import dell_system.MessageViewPanel;
import dell_targets.Dell_SystemConfiguration;
import publicsWay.PacketProcessingSystemB;
public class UDPPortBReceiver {
    public static final int PORT = 7000;
   public static final int PORT =Dell_SystemConfiguration.ascallport;
    @SuppressWarnings("unused")
   private static final int MAX_DEVICES = 50000;
    private static final AtomicLong packetCount = new AtomicLong(0);
@@ -32,22 +35,27 @@
                while (isRunning) {
                    DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
                    socket.receive(packet);
                    executor.execute(() -> {
                        try {
                            String ip = packet.getAddress().getHostAddress();
                            int port = packet.getPort();
                            String hexData = bytesToHex(packet.getData(), packet.getLength());
                     //String hexData = bytesToHex(packet.getData(), packet.getLength());
                     String asciiData = new String(packet.getData(), 0, packet.getLength(), StandardCharsets.US_ASCII);
                     // 去掉回车和换行
                       asciiData = asciiData.replaceAll("\r", "").replaceAll("\n", "");
                            // 调用时添加本地端口参数
                            PacketProcessingSystem.storePacket(ip, port, hexData);
                     PacketProcessingSystemB.storePacket(ip, port, asciiData);
                     // 报文查看窗口显示数据
                     MessageViewPanel.showData(asciiData, ip, port, PORT,"UDPB","ALL","ALL");
                     packetCount.incrementAndGet();  // 关键修复:增加计数器
                            
                        } catch (Exception e) {
                            System.err.println("Error processing UDP-A packet: " + e.getMessage());
                     System.err.println("Error processing UDP-B packet: " + e.getMessage());
                        }
                    });
                }
            } catch (Exception e) {
                System.err.println("UDP-A Server crashed: " + e.getMessage());
            System.err.println("UDP-B Server crashed: " + e.getMessage());
            } finally {
                if (socket != null && !socket.isClosed()) {
                    socket.close();
@@ -85,14 +93,6 @@
        } catch (Exception e) {
            System.err.println("Error sending UDP data: " + e.getMessage());
        }
    }
    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();
    }
    
    private static byte[] hexStringToByteArray(String hex) {