Commit 521dc336bf1f6846cce16d8edcc69242ef316561
1 parent
8c83af30
Exists in
develop
fix: IoSession逻辑修改
Showing
3 changed files
with
12 additions
and
3 deletions
Show diff stats
src/main/java/com/example/mina/client/base/AbstractClient.java
@@ -2,7 +2,9 @@ package com.example.mina.client.base; | @@ -2,7 +2,9 @@ package com.example.mina.client.base; | ||
2 | 2 | ||
3 | import com.example.mina.client.entity.AbstractClientMessage; | 3 | import com.example.mina.client.entity.AbstractClientMessage; |
4 | import com.example.mina.server.base.AbstractHardwareDataBuffer; | 4 | import com.example.mina.server.base.AbstractHardwareDataBuffer; |
5 | +import org.apache.mina.core.future.ConnectFuture; | ||
5 | import org.apache.mina.core.service.IoConnector; | 6 | import org.apache.mina.core.service.IoConnector; |
7 | +import org.apache.mina.core.session.IoSession; | ||
6 | import org.apache.mina.filter.codec.ProtocolCodecFactory; | 8 | import org.apache.mina.filter.codec.ProtocolCodecFactory; |
7 | import org.apache.mina.filter.codec.ProtocolCodecFilter; | 9 | import org.apache.mina.filter.codec.ProtocolCodecFilter; |
8 | import org.apache.mina.transport.socket.nio.NioSocketConnector; | 10 | import org.apache.mina.transport.socket.nio.NioSocketConnector; |
@@ -23,6 +25,8 @@ public abstract class AbstractClient { | @@ -23,6 +25,8 @@ public abstract class AbstractClient { | ||
23 | 25 | ||
24 | protected AbstractClientMessage abstractClientMessage; | 26 | protected AbstractClientMessage abstractClientMessage; |
25 | 27 | ||
28 | + protected IoSession ioSession; | ||
29 | + | ||
26 | protected AbstractClient() { | 30 | protected AbstractClient() { |
27 | initHardwareDataBuffer(); | 31 | initHardwareDataBuffer(); |
28 | initClientMessage(); | 32 | initClientMessage(); |
@@ -45,8 +49,13 @@ public abstract class AbstractClient { | @@ -45,8 +49,13 @@ public abstract class AbstractClient { | ||
45 | //3、客户端IoHandler,发生消息 | 49 | //3、客户端IoHandler,发生消息 |
46 | connector.setHandler(abstractVirtualBoxClientHandler); | 50 | connector.setHandler(abstractVirtualBoxClientHandler); |
47 | //连接服务端 | 51 | //连接服务端 |
48 | - connector.connect(new InetSocketAddress(abstractVirtualBoxClientHandler.getClientMessage().getHost(), | 52 | + ConnectFuture connectFuture = connector.connect(new InetSocketAddress(abstractVirtualBoxClientHandler.getClientMessage().getHost(), |
49 | abstractVirtualBoxClientHandler.getClientMessage().getPort())); | 53 | abstractVirtualBoxClientHandler.getClientMessage().getPort())); |
54 | + // 等待建立连接 | ||
55 | + connectFuture.awaitUninterruptibly(); | ||
56 | + // 获取连接会话 | ||
57 | + this.ioSession = connectFuture.getSession(); | ||
58 | + setAttenuation(1, 1, 10); | ||
50 | } | 59 | } |
51 | 60 | ||
52 | public boolean isConnected() { | 61 | public boolean isConnected() { |
src/main/java/com/example/mina/client/base/AbstractVirtualBoxClientHandler.java
@@ -77,7 +77,7 @@ public abstract class AbstractVirtualBoxClientHandler extends IoHandlerAdapter { | @@ -77,7 +77,7 @@ public abstract class AbstractVirtualBoxClientHandler extends IoHandlerAdapter { | ||
77 | // for (int i = 0; i < clientMessage.getCommands().size(); i++) { | 77 | // for (int i = 0; i < clientMessage.getCommands().size(); i++) { |
78 | // handleOneCommand(i, session); | 78 | // handleOneCommand(i, session); |
79 | // } | 79 | // } |
80 | - handleOneCommand(1, session); | 80 | +// handleOneCommand(1, session); |
81 | System.out.println("客户端sessionOpened被调用!"); | 81 | System.out.println("客户端sessionOpened被调用!"); |
82 | System.out.println("client端打开连接"); | 82 | System.out.println("client端打开连接"); |
83 | } | 83 | } |
src/main/java/com/example/mina/client/lte3000/Lte3000Client.java
1 | package com.example.mina.client.lte3000; | 1 | package com.example.mina.client.lte3000; |
2 | 2 | ||
3 | -import com.example.mina.client.aeroflex.AeroflexClientHandler; | ||
4 | import com.example.mina.client.base.AbstractClient; | 3 | import com.example.mina.client.base.AbstractClient; |
5 | import com.example.mina.client.coder.ByteFactory; | 4 | import com.example.mina.client.coder.ByteFactory; |
6 | import com.example.mina.client.entity.AbstractClientMessage; | 5 | import com.example.mina.client.entity.AbstractClientMessage; |
@@ -45,6 +44,7 @@ public class Lte3000Client extends AbstractClient { | @@ -45,6 +44,7 @@ public class Lte3000Client extends AbstractClient { | ||
45 | 44 | ||
46 | @Override | 45 | @Override |
47 | public boolean setAttenuation(int row, int col, int attenuation) { | 46 | public boolean setAttenuation(int row, int col, int attenuation) { |
47 | + ioSession.write("abcdfd".getBytes()); | ||
48 | return false; | 48 | return false; |
49 | } | 49 | } |
50 | 50 |