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 | 2 | |
3 | 3 | import com.example.mina.client.entity.AbstractClientMessage; |
4 | 4 | import com.example.mina.server.base.AbstractHardwareDataBuffer; |
5 | +import org.apache.mina.core.future.ConnectFuture; | |
5 | 6 | import org.apache.mina.core.service.IoConnector; |
7 | +import org.apache.mina.core.session.IoSession; | |
6 | 8 | import org.apache.mina.filter.codec.ProtocolCodecFactory; |
7 | 9 | import org.apache.mina.filter.codec.ProtocolCodecFilter; |
8 | 10 | import org.apache.mina.transport.socket.nio.NioSocketConnector; |
... | ... | @@ -23,6 +25,8 @@ public abstract class AbstractClient { |
23 | 25 | |
24 | 26 | protected AbstractClientMessage abstractClientMessage; |
25 | 27 | |
28 | + protected IoSession ioSession; | |
29 | + | |
26 | 30 | protected AbstractClient() { |
27 | 31 | initHardwareDataBuffer(); |
28 | 32 | initClientMessage(); |
... | ... | @@ -45,8 +49,13 @@ public abstract class AbstractClient { |
45 | 49 | //3、客户端IoHandler,发生消息 |
46 | 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 | 53 | abstractVirtualBoxClientHandler.getClientMessage().getPort())); |
54 | + // 等待建立连接 | |
55 | + connectFuture.awaitUninterruptibly(); | |
56 | + // 获取连接会话 | |
57 | + this.ioSession = connectFuture.getSession(); | |
58 | + setAttenuation(1, 1, 10); | |
50 | 59 | } |
51 | 60 | |
52 | 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 | 77 | // for (int i = 0; i < clientMessage.getCommands().size(); i++) { |
78 | 78 | // handleOneCommand(i, session); |
79 | 79 | // } |
80 | - handleOneCommand(1, session); | |
80 | +// handleOneCommand(1, session); | |
81 | 81 | System.out.println("客户端sessionOpened被调用!"); |
82 | 82 | System.out.println("client端打开连接"); |
83 | 83 | } | ... | ... |
src/main/java/com/example/mina/client/lte3000/Lte3000Client.java
1 | 1 | package com.example.mina.client.lte3000; |
2 | 2 | |
3 | -import com.example.mina.client.aeroflex.AeroflexClientHandler; | |
4 | 3 | import com.example.mina.client.base.AbstractClient; |
5 | 4 | import com.example.mina.client.coder.ByteFactory; |
6 | 5 | import com.example.mina.client.entity.AbstractClientMessage; |
... | ... | @@ -45,6 +44,7 @@ public class Lte3000Client extends AbstractClient { |
45 | 44 | |
46 | 45 | @Override |
47 | 46 | public boolean setAttenuation(int row, int col, int attenuation) { |
47 | + ioSession.write("abcdfd".getBytes()); | |
48 | 48 | return false; |
49 | 49 | } |
50 | 50 | ... | ... |