From 04122050f9b2bf5612d26f8394cc2ead03b57258 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期五, 10 十二月 2021 18:09:01 +0800
Subject: [PATCH] 2021-12-10 1.优化UDP发送

---
 HDLSDK/hdl-socket/src/main/java/com/hdl/sdk/socket/client/UdpClient.java |   24 ++++++++++--------------
 1 files changed, 10 insertions(+), 14 deletions(-)

diff --git a/HDLSDK/hdl-socket/src/main/java/com/hdl/sdk/socket/client/UdpClient.java b/HDLSDK/hdl-socket/src/main/java/com/hdl/sdk/socket/client/UdpClient.java
index 1279a7c..cbae147 100644
--- a/HDLSDK/hdl-socket/src/main/java/com/hdl/sdk/socket/client/UdpClient.java
+++ b/HDLSDK/hdl-socket/src/main/java/com/hdl/sdk/socket/client/UdpClient.java
@@ -19,6 +19,7 @@
 import java.net.DatagramSocket;
 import java.net.InetAddress;
 import java.net.InetSocketAddress;
+import java.net.SocketAddress;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicBoolean;
 
@@ -38,7 +39,7 @@
 
     private final byte[] receiveByte;
 
-    private final String ip;
+//    private final String ip;
 
     private final int port;
 
@@ -54,16 +55,10 @@
      */
     private UdpClient(String ip, int port, int monitorPort, int sendPort, SocketOptions socketOptions) {
         this.socketOptions = socketOptions;
-        this.ip = ip;
+        this.socketOptions.setIp(ip);
         this.port = port;
         this.sendPort = sendPort;
         this.monitorPort = monitorPort;
-        this.receiveByte = new byte[BUFFER];
-    }
-
-    public UdpClient(String ip, int port) {
-        this.ip = ip;
-        this.port = port;
         this.receiveByte = new byte[BUFFER];
     }
 
@@ -125,7 +120,7 @@
             return;
         }
         try {
-            mSocket.receive(receivePacket);
+           mSocket.receive(receivePacket);
         } catch (IOException e) {
             e.printStackTrace();
             isConnect.set(false);
@@ -135,17 +130,17 @@
         }
         //鎺掗櫎鑷繁鍙戝嚭鍘荤殑
         try {
-            if (receivePacket.getAddress().getHostAddress()
-                    .equals(IpUtils.getIP(HDLSdk.getInstance().getContext()))) {
+            if (IpUtils.isLocalIpAddress( receivePacket.getAddress().getHostAddress()))
                 return;
-            }
         } catch (Exception ignored) {
 
         }
 
         IHandleMessage handleMessage = getOptions().getHandleMessage();
         if (handleMessage != null) {
-            handleMessage.read(receivePacket.getData());
+            byte[] data = new byte[receivePacket.getLength()];
+            System.arraycopy(receivePacket.getData(), 0, data, 0, data.length);
+            handleMessage.read(data);
         }
         final String receive = new String(receivePacket.getData(), 0, receivePacket.getLength());
 
@@ -162,7 +157,8 @@
         if (msg == null) {
             msg = new byte[1];
         }
-        InetAddress serverAddress = InetAddress.getByName(ip);
+        InetAddress serverAddress = InetAddress.getByName(getOptions().getIp());
+        LogUtils.e("鍙戦�佺洰鏍嘔P鍦板潃锛�"+getOptions().getIp());
         final DatagramPacket sendPacket = new DatagramPacket(msg, msg.length, serverAddress, port);
         if (sendPort < 0) {
             final DatagramSocket sendSocket = new DatagramSocket();

--
Gitblit v1.8.0