From 7df8ed14d605bcc731341ff12349bc117714b69e Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期四, 17 四月 2025 16:18:24 +0800
Subject: [PATCH] 优化代码
---
pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu202404/src/main/java/com/dy/simRtu202404/tcpClient/TcpConnect.java | 66 +++++++++++++++++++++++++++++++++
1 files changed, 66 insertions(+), 0 deletions(-)
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu202404/src/main/java/com/dy/simRtu202404/tcpClient/TcpConnect.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu202404/src/main/java/com/dy/simRtu202404/tcpClient/TcpConnect.java
new file mode 100644
index 0000000..e482126
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-simulate-rtu202404/src/main/java/com/dy/simRtu202404/tcpClient/TcpConnect.java
@@ -0,0 +1,66 @@
+package com.dy.simRtu202404.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;
+/**
+ * @Author: liurunyu
+ * @Date: 2025/02/26 11:10
+ * @Description
+ */
+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