From 1a2b07f01ba4616fd9e894dddf474b56d020158c Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期一, 07 四月 2025 15:18:51 +0800
Subject: [PATCH] 整理版本

---
 pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/TcpConnect.java |   62 +++++++++++++++++++++++++++++++
 1 files changed, 62 insertions(+), 0 deletions(-)

diff --git a/pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/TcpConnect.java b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/TcpConnect.java
new file mode 100644
index 0000000..be55666
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-mwTest-rtu/src/main/java/com/dy/pipIrrMwTestRtu/tcpClient/TcpConnect.java
@@ -0,0 +1,62 @@
+package com.dy.pipIrrMwTestRtu.tcpClient;
+
+import com.dy.common.util.Callback;
+import org.apache.mina.core.future.ConnectFuture;
+import org.apache.mina.core.session.IoSession;
+import org.apache.mina.filter.codec.ProtocolCodecFilter;
+import org.apache.mina.transport.socket.SocketConnector;
+import org.apache.mina.transport.socket.nio.NioSocketConnector;
+
+import java.net.InetSocketAddress;
+
+public class TcpConnect {
+
+     /**
+     * 鍒ゆ柇浼氳瘽鏄惁鏈夋晥
+     * @param se 缃戠粶浼氳瘽
+     * @return 鏄惁杩炴帴
+     */
+    public boolean isConnected(IoSession se) {
+        return (se != null && se.isConnected());
+    }
+
+    /**
+     * 鍒涘缓鏂颁細璇�
+     * @param host 鏈嶅姟鍣║RI
+     * @param port 鏈嶅姟鍣ㄧ鍙�
+     * @param connectTimeout 杩炴帴瓒呮椂鏃堕暱
+     * @param handler 鏁版嵁澶勭悊鑰�
+     * @param callback 鍥炶皟
+     * @return 缃戠粶浼氳瘽
+     */
+    public void createSession(String host ,
+                               int port ,
+                               int connectTimeout ,
+                               TcpHandler handler,
+                               Callback callback) throws Exception{
+        SocketConnector connector = new NioSocketConnector();
+        connector.getFilterChain().addLast("codec", new ProtocolCodecFilter(new LocalCodecFactory()));
+        connector.setHandler(handler);
+        ConnectFuture connectFuture = connector.connect(new InetSocketAddress(host, port));
+        connectFuture.awaitUninterruptibly(connectTimeout);
+        IoSession se = connectFuture.getSession();
+        callback.call(se) ;
+    }
+
+
+    /**
+     * 鍏抽棴浼氳瘽鑱旀帴
+     * @param se
+     * @param connectTimeout
+     */
+    public void disconnect(IoSession se , int connectTimeout) {
+        if (se != null) {
+            try{
+                se.closeNow().awaitUninterruptibly(connectTimeout);
+            }catch(Exception e){
+            }finally{
+                se = null;
+            }
+        }
+    }
+}

--
Gitblit v1.8.0