File was renamed from pipIrr-platform/pipIrr-mw/pipIrr-mwTest-client/src/main/java/com/dy/testClient/tcpConnect/MinaConnect.java |
| | |
| | | package com.dy.testClient.tcpConnect; |
| | | package com.dy.testClient.tcpClient; |
| | | |
| | | 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 MinaConnect { |
| | | public class TcpConnect { |
| | | |
| | | public static final String rtuAddrKey = "rtuAddr" ; |
| | | public static final String threadJobKey = "threadJob" ; |
| | | |
| | | /** |
| | | * 判断会话是否有效 |
| | | * @param se 网络会话 |
| | | * @return 是否连接 |
| | | */ |
| | | protected boolean isConnected(IoSession se) { |
| | | public boolean isConnected(IoSession se) { |
| | | return (se != null && se.isConnected()); |
| | | } |
| | | |
| | | /** |
| | | * 创建新会话 |
| | | * @param rtuAddr rtu地址 |
| | | * @param job rtu工作类 |
| | | * @param host 服务器URI |
| | | * @param port 服务器端口 |
| | | * @return 网络会话 |
| | | */ |
| | | protected IoSession createSession(String host , int port , int connectTimeout , MinaHandler handler) throws Exception{ |
| | | public IoSession createSession(String rtuAddr, MyThreadJob job, String host , int port , int connectTimeout , TcpHandler handler) 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(); |
| | | se.setAttribute(rtuAddrKey, rtuAddr) ; |
| | | se.setAttribute(threadJobKey, job) ; |
| | | return se ; |
| | | } |
| | | |
| | |
| | | * @param se |
| | | * @param connectTimeout |
| | | */ |
| | | protected void disconnect(IoSession se , int connectTimeout) { |
| | | public void disconnect(IoSession se , int connectTimeout) { |
| | | if (se != null) { |
| | | try{ |
| | | se.closeNow().awaitUninterruptibly(connectTimeout); |