From 521dc336bf1f6846cce16d8edcc69242ef316561 Mon Sep 17 00:00:00 2001 From: dy <1351757011@qq.com> Date: Fri, 12 Mar 2021 11:04:10 +0800 Subject: [PATCH] fix: IoSession逻辑修改 --- src/main/java/com/example/mina/client/base/AbstractClient.java | 11 ++++++++++- src/main/java/com/example/mina/client/base/AbstractVirtualBoxClientHandler.java | 2 +- src/main/java/com/example/mina/client/lte3000/Lte3000Client.java | 2 +- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/example/mina/client/base/AbstractClient.java b/src/main/java/com/example/mina/client/base/AbstractClient.java index c3b63c7..4726991 100644 --- a/src/main/java/com/example/mina/client/base/AbstractClient.java +++ b/src/main/java/com/example/mina/client/base/AbstractClient.java @@ -2,7 +2,9 @@ package com.example.mina.client.base; import com.example.mina.client.entity.AbstractClientMessage; import com.example.mina.server.base.AbstractHardwareDataBuffer; +import org.apache.mina.core.future.ConnectFuture; import org.apache.mina.core.service.IoConnector; +import org.apache.mina.core.session.IoSession; import org.apache.mina.filter.codec.ProtocolCodecFactory; import org.apache.mina.filter.codec.ProtocolCodecFilter; import org.apache.mina.transport.socket.nio.NioSocketConnector; @@ -23,6 +25,8 @@ public abstract class AbstractClient { protected AbstractClientMessage abstractClientMessage; + protected IoSession ioSession; + protected AbstractClient() { initHardwareDataBuffer(); initClientMessage(); @@ -45,8 +49,13 @@ public abstract class AbstractClient { //3、客户端IoHandler,发生消息 connector.setHandler(abstractVirtualBoxClientHandler); //连接服务端 - connector.connect(new InetSocketAddress(abstractVirtualBoxClientHandler.getClientMessage().getHost(), + ConnectFuture connectFuture = connector.connect(new InetSocketAddress(abstractVirtualBoxClientHandler.getClientMessage().getHost(), abstractVirtualBoxClientHandler.getClientMessage().getPort())); + // 等待建立连接 + connectFuture.awaitUninterruptibly(); + // 获取连接会话 + this.ioSession = connectFuture.getSession(); + setAttenuation(1, 1, 10); } public boolean isConnected() { diff --git a/src/main/java/com/example/mina/client/base/AbstractVirtualBoxClientHandler.java b/src/main/java/com/example/mina/client/base/AbstractVirtualBoxClientHandler.java index 27876a4..313c9d3 100644 --- a/src/main/java/com/example/mina/client/base/AbstractVirtualBoxClientHandler.java +++ b/src/main/java/com/example/mina/client/base/AbstractVirtualBoxClientHandler.java @@ -77,7 +77,7 @@ public abstract class AbstractVirtualBoxClientHandler extends IoHandlerAdapter { // for (int i = 0; i < clientMessage.getCommands().size(); i++) { // handleOneCommand(i, session); // } - handleOneCommand(1, session); +// handleOneCommand(1, session); System.out.println("客户端sessionOpened被调用!"); System.out.println("client端打开连接"); } diff --git a/src/main/java/com/example/mina/client/lte3000/Lte3000Client.java b/src/main/java/com/example/mina/client/lte3000/Lte3000Client.java index a9c3e64..2d0d45c 100644 --- a/src/main/java/com/example/mina/client/lte3000/Lte3000Client.java +++ b/src/main/java/com/example/mina/client/lte3000/Lte3000Client.java @@ -1,6 +1,5 @@ package com.example.mina.client.lte3000; -import com.example.mina.client.aeroflex.AeroflexClientHandler; import com.example.mina.client.base.AbstractClient; import com.example.mina.client.coder.ByteFactory; import com.example.mina.client.entity.AbstractClientMessage; @@ -45,6 +44,7 @@ public class Lte3000Client extends AbstractClient { @Override public boolean setAttenuation(int row, int col, int attenuation) { + ioSession.write("abcdfd".getBytes()); return false; } -- libgit2 0.21.2