From 830e47a67026205b75f69e061d81783aa606a237 Mon Sep 17 00:00:00 2001
From: 562935844@qq.com
Date: 星期五, 23 九月 2022 16:23:26 +0800
Subject: [PATCH] tcp发送之前判断是否连接
---
HDLSDK/hdl-socket/src/main/java/com/hdl/sdk/socket/client/UdpClient.java | 27 ++++++++++++++++-----------
1 files changed, 16 insertions(+), 11 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 c2a75a4..8a78384 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
@@ -17,6 +17,7 @@
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.InetSocketAddress;
+import java.net.SocketAddress;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -86,7 +87,7 @@
* @return
*/
public static UdpSocketBoot init(int port, UdpSocketOptions options) {
- return init(null, port, options);
+ return init("0.0.0.0", port, options);
}
@@ -98,10 +99,12 @@
return;
}
if (TextUtils.isEmpty(ipAddress)) {
- mSocket = SocketPool.getInstance().getUdpSocket1(new InetSocketAddress(port));
+ mSocket = SocketPool.getInstance().getUdpSocket(new InetSocketAddress(port));
+ }else {
+ mSocket = SocketPool.getInstance().getUdpSocket(new InetSocketAddress(ipAddress,port));
}
mSocket.setBroadcast(true);
- mSocket.setReuseAddress(true);
+// mSocket.setReuseAddress(true);
} catch (Exception e) {
LogUtils.e("鍒濆鍖朣ocket 澶辫触锛�" + e.getMessage());
@@ -122,15 +125,16 @@
@Override
public UdpSocketOptions getOptions() {
- return null;
+ return this.socketOptions;
}
+ @Override
public void onHandleResponse() throws Exception {
if (mSocket == null) {
return;
}
try {
- mSocket.receive(receivePacket);
+ mSocket.receive(receivePacket);
} catch (IOException e) {
e.printStackTrace();
}
@@ -139,33 +143,34 @@
}
//鎺掗櫎鑷繁鍙戝嚭鍘荤殑
try {
- if (IpUtils.isLocalIpAddress( receivePacket.getAddress().getHostAddress()))
+ if (IpUtils.isLocalIpAddress(receivePacket.getAddress().getHostAddress()))
return;
} catch (Exception ignored) {
}
try {
- LogUtils.i( "鎺ユ敹鍒癠dp鏁版嵁鍖咃紝缃戠粶鍦板潃锛�" + receivePacket.getAddress().getHostAddress() + ":" + receivePacket.getPort());
+ LogUtils.i("鎺ユ敹鍒癠dp鏁版嵁鍖咃紝缃戠粶鍦板潃锛�" + receivePacket.getAddress().getHostAddress() + ":" + receivePacket.getPort());
IHandleMessage handleMessage = getOptions().getHandleMessage();
if (handleMessage != null) {
byte[] data = new byte[receivePacket.getLength()];
System.arraycopy(receivePacket.getData(), 0, data, 0, data.length);
- handleMessage.read(data);
+ handleMessage.read(data,receivePacket.getAddress().getHostAddress());
}
- }catch (Exception e){
+ } catch (Exception e) {
}
}
+
@Override
- public void sendMsg(InetSocketAddress inetSocketAddress, byte[] msg) throws Exception {
+ public void sendMsg(String ipAddress,int port, byte[] msg) throws Exception {
if (msg == null) {
return;
}
- final DatagramPacket sendPacket = new DatagramPacket(msg, msg.length, inetSocketAddress);
+ final DatagramPacket sendPacket = new DatagramPacket(msg, msg.length, InetAddress.getByName(ipAddress), port);
mSocket.send(sendPacket);
}
}
--
Gitblit v1.8.0