From 9619e60e3075a432d692f3cd8b76787568c53aad Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期三, 07 五月 2025 15:56:58 +0800
Subject: [PATCH] 1、完善代码;2、禁止输出SpringBoot启动时Banner。
---
pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu3rd/src/main/java/com/dy/rtuMw3rd/tcp4Bjnl/TcpConnect.java | 83 +++++++++++++++++++++++++++++++++++++++++
1 files changed, 83 insertions(+), 0 deletions(-)
diff --git a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu3rd/src/main/java/com/dy/rtuMw3rd/tcp4Bjnl/TcpConnect.java b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu3rd/src/main/java/com/dy/rtuMw3rd/tcp4Bjnl/TcpConnect.java
new file mode 100644
index 0000000..9a8fe01
--- /dev/null
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu3rd/src/main/java/com/dy/rtuMw3rd/tcp4Bjnl/TcpConnect.java
@@ -0,0 +1,83 @@
+package com.dy.rtuMw3rd.tcp4Bjnl;
+
+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/03/18 14:20
+ * @Description
+ */
+public class TcpConnect {
+
+ private static IoSession ioSession ;
+
+ public static IoSession getIoSession(){
+ return ioSession;
+ }
+
+ /**
+ * 鍒ゆ柇浼氳瘽鏄惁鏈夋晥
+ * @return 鏄惁杩炴帴
+ */
+ public static boolean isConnected() {
+ return (ioSession != null && ioSession.isConnected());
+ }
+
+ /**
+ * 鍒涘缓鏂颁細璇�
+ * @param host 鏈嶅姟鍣║RI
+ * @param port 鏈嶅姟鍣ㄧ鍙�
+ * @param connectTimeout 杩炴帴瓒呮椂鏃堕暱
+ * @param handler 鏁版嵁澶勭悊鑰�
+ * @param callback 鍥炶皟
+ * @return 缃戠粶浼氳瘽
+ */
+ public static 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 NetDataCodecFactory()));
+ connector.setHandler(handler);
+ ConnectFuture connectFuture = connector.connect(new InetSocketAddress(host, port));
+ connectFuture.awaitUninterruptibly(connectTimeout);
+ ioSession = connectFuture.getSession();
+ callback.call(ioSession) ;
+ }
+
+
+ /**
+ * 鍏抽棴浼氳瘽鑱旀帴
+ * @param se
+ * @param connectTimeout
+ */
+ public static void disconnect(IoSession se , int connectTimeout) {
+ if (se != null) {
+ try{
+ se.closeNow().awaitUninterruptibly(connectTimeout);
+ }catch(Exception e){
+ if(se.isConnected()){
+ se.closeNow().awaitUninterruptibly(connectTimeout);
+ }
+ }finally{
+ se = null;
+ }
+ }
+ }
+
+ public static void output(byte[] bs) throws Exception{
+ if (!isConnected()) {
+ throw new Exception("鏈垱寤虹綉缁滆繛鎺�");
+ }else{
+ ioSession.write(bs);
+ }
+ }
+}
--
Gitblit v1.8.0