From 2a01ef5e49422cca49bc7476fc1b8be8c8556561 Mon Sep 17 00:00:00 2001 From: hxb <hxb@hdlchina.com.cn> Date: 星期四, 08 九月 2022 10:46:57 +0800 Subject: [PATCH] 最新sdk java版本 --- HDLSDK/HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/socket/SocketPool.java | 29 ++++++++++++++++------------- 1 files changed, 16 insertions(+), 13 deletions(-) diff --git a/HDLSDK/hdl-socket/src/main/java/com/hdl/sdk/socket/SocketPool.java b/HDLSDK/HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/socket/SocketPool.java similarity index 64% rename from HDLSDK/hdl-socket/src/main/java/com/hdl/sdk/socket/SocketPool.java rename to HDLSDK/HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/socket/SocketPool.java index 41e2763..79e11f6 100644 --- a/HDLSDK/hdl-socket/src/main/java/com/hdl/sdk/socket/SocketPool.java +++ b/HDLSDK/HDLLinkLocalSdk/src/main/java/com/hdl/sdk/link/socket/SocketPool.java @@ -1,6 +1,6 @@ -package com.hdl.sdk.socket; +package com.hdl.sdk.link.socket; -import com.hdl.sdk.socket.client.IClient; +import com.hdl.sdk.link.socket.client.IClient; import java.net.DatagramSocket; import java.net.InetSocketAddress; @@ -21,10 +21,13 @@ mUdpClientPool = new ConcurrentHashMap<>(); } - private static final SocketPool instance = new SocketPool(); + + private static class SingletonInstance { + private static final SocketPool INSTANCE = new SocketPool(); + } public static SocketPool getInstance() { - return instance; + return SingletonInstance.INSTANCE; } public void clear() { @@ -33,19 +36,19 @@ } public synchronized DatagramSocket getUdpSocket(InetSocketAddress address) throws SocketException { - DatagramSocket socket; - final String key = address.toString(); + DatagramSocket socket = null; + final String key = address.getPort() + ""; if (mUdpClientPool.containsKey(key)) { socket = mUdpClientPool.get(key); - if (socket != null && !socket.isClosed()) { - return socket; - } else { - socket = new DatagramSocket(address); + if (socket != null && socket.isClosed()) { + mUdpClientPool.remove(key); + socket = null; } - } else { - socket = new DatagramSocket(address); } - mUdpClientPool.put(address.toString(), socket); + if (socket == null) { + socket = new DatagramSocket(address); + mUdpClientPool.put(key, socket); + } return socket; } } -- Gitblit v1.8.0