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