From 7ae3378cab3a872f0f1bc8dfbc4dd9fad303d875 Mon Sep 17 00:00:00 2001
From: hxb <hxb@hdlchina.com.cn>
Date: 星期三, 08 十二月 2021 09:34:44 +0800
Subject: [PATCH] 修改下细节

---
 HDLSDK/hdl-socket/src/main/java/com/hdl/sdk/socket/client/UdpClient.java |   21 ++++++++++++---------
 1 files changed, 12 insertions(+), 9 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 fc81bb6..1f3dab9 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
@@ -5,9 +5,11 @@
 
 import com.hdl.sdk.common.HDLSdk;
 import com.hdl.sdk.common.utils.IpUtils;
+import com.hdl.sdk.common.utils.LogUtils;
 import com.hdl.sdk.common.utils.ThreadToolUtils;
 import com.hdl.sdk.socket.SocketBoot;
 import com.hdl.sdk.socket.SocketOptions;
+import com.hdl.sdk.socket.SocketPool;
 import com.hdl.sdk.socket.annotation.ConnectStatus;
 import com.hdl.sdk.socket.codec.IHandleMessage;
 import com.hdl.sdk.socket.listener.ConnectStatusListener;
@@ -16,6 +18,8 @@
 import java.net.DatagramPacket;
 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;
 
@@ -78,12 +82,11 @@
 
     @Override
     public void connect() throws Exception {
-
         try {
-            mSocket = ClientPool.getInstance().getUdpSocket(ip, monitorPort);
+            mSocket = SocketPool.getInstance().getUdpSocket(new InetSocketAddress(monitorPort));
+
             mSocket.setBroadcast(true);
             mSocket.setReuseAddress(true);
-
             isConnect.set(true);
             if (receivePacket == null) {
                 receivePacket = new DatagramPacket(receiveByte, BUFFER);
@@ -123,7 +126,7 @@
             return;
         }
         try {
-            mSocket.receive(receivePacket);
+           mSocket.receive(receivePacket);
         } catch (IOException e) {
             e.printStackTrace();
             isConnect.set(false);
@@ -133,21 +136,21 @@
         }
         //鎺掗櫎鑷繁鍙戝嚭鍘荤殑
         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());
 
-        Log.d("---->", receive + " from " + receivePacket.getAddress().getHostAddress() + ":" + receivePacket.getPort());
+        LogUtils.d("---->", receive + " from " + receivePacket.getAddress().getHostAddress() + ":" + receivePacket.getPort());
 
         //閲嶇疆闀垮害
         if (receivePacket != null) {

--
Gitblit v1.8.0