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