Commit 7af2683e9bfcc4ead1417b80f77a831e0143ab5d
1 parent
c2886db3
Exists in
develop
fix: 修改客户端代码
Showing
6 changed files
with
32 additions
and
25 deletions
Show diff stats
src/main/java/com/example/mina/client/aeroflex/AeroflexClient.java
... | ... | @@ -2,7 +2,10 @@ package com.example.mina.client.aeroflex; |
2 | 2 | |
3 | 3 | import com.example.mina.client.base.AbstractClient; |
4 | 4 | import com.example.mina.client.base.AbstractVirtualBoxClientHandler; |
5 | +import com.example.mina.client.coder.ByteFactory; | |
6 | +import com.example.mina.client.entity.Command; | |
5 | 7 | import org.apache.mina.filter.codec.ProtocolCodecFactory; |
8 | +import org.springframework.boot.ApplicationArguments; | |
6 | 9 | |
7 | 10 | /** |
8 | 11 | * @author dy |
... | ... | @@ -39,4 +42,5 @@ public class AeroflexClient extends AbstractClient { |
39 | 42 | public int[][] getAll() { |
40 | 43 | return new int[0][]; |
41 | 44 | } |
45 | + | |
42 | 46 | } | ... | ... |
src/main/java/com/example/mina/client/aeroflex/AeroflexClientHandler.java
... | ... | @@ -8,7 +8,14 @@ import com.example.mina.client.entity.Command; |
8 | 8 | * @date 2021/3/10 |
9 | 9 | */ |
10 | 10 | public class AeroflexClientHandler extends AbstractVirtualBoxClientHandler { |
11 | - public AeroflexClientHandler(Command command) { | |
12 | - super(new Command("AeroflexClient", new byte[4])); | |
11 | + | |
12 | + @Override | |
13 | + protected void addCommand() { | |
14 | + command = Command.builder().description("AeroflexClient") | |
15 | + .bytes("ATTN".getBytes()) | |
16 | + .host("localhost") | |
17 | + .port(9100) | |
18 | + .build(); | |
19 | + | |
13 | 20 | } |
14 | 21 | } | ... | ... |
src/main/java/com/example/mina/client/base/AbstractClient.java
... | ... | @@ -4,6 +4,8 @@ import org.apache.mina.core.service.IoConnector; |
4 | 4 | import org.apache.mina.filter.codec.ProtocolCodecFactory; |
5 | 5 | import org.apache.mina.filter.codec.ProtocolCodecFilter; |
6 | 6 | import org.apache.mina.transport.socket.nio.NioSocketConnector; |
7 | +import org.springframework.boot.ApplicationArguments; | |
8 | +import org.springframework.boot.ApplicationRunner; | |
7 | 9 | |
8 | 10 | import java.net.InetSocketAddress; |
9 | 11 | |
... | ... | @@ -25,7 +27,7 @@ public abstract class AbstractClient { |
25 | 27 | |
26 | 28 | protected abstract void getBoxName(); |
27 | 29 | |
28 | - public void start(String host, int port) { | |
30 | + public void start() { | |
29 | 31 | //1、创建客户端IoService |
30 | 32 | IoConnector connector = new NioSocketConnector(); |
31 | 33 | //客户端链接超时时间 |
... | ... | @@ -35,7 +37,8 @@ public abstract class AbstractClient { |
35 | 37 | //3、客户端IoHandler,发生消息 |
36 | 38 | connector.setHandler(abstractVirtualBoxClientHandler); |
37 | 39 | //连接服务端 |
38 | - connector.connect(new InetSocketAddress(host, port)); | |
40 | + connector.connect(new InetSocketAddress(abstractVirtualBoxClientHandler.command.getHost(), | |
41 | + abstractVirtualBoxClientHandler.command.getPort())); | |
39 | 42 | } |
40 | 43 | |
41 | 44 | public boolean isConnected() { | ... | ... |
src/main/java/com/example/mina/client/base/AbstractVirtualBoxClientHandler.java
... | ... | @@ -18,10 +18,12 @@ public abstract class AbstractVirtualBoxClientHandler extends IoHandlerAdapter { |
18 | 18 | |
19 | 19 | protected Command command; |
20 | 20 | |
21 | - public AbstractVirtualBoxClientHandler(Command command) { | |
22 | - this.command = command; | |
21 | + public AbstractVirtualBoxClientHandler() { | |
22 | + addCommand(); | |
23 | 23 | } |
24 | 24 | |
25 | + protected abstract void addCommand(); | |
26 | + | |
25 | 27 | @Override |
26 | 28 | public void exceptionCaught(IoSession session, Throwable throwable) { |
27 | 29 | System.out.println("客户端exceptionCaught被调用!"); | ... | ... |
src/main/java/com/example/mina/client/entity/Command.java
1 | 1 | package com.example.mina.client.entity; |
2 | 2 | |
3 | 3 | import com.example.mina.server.util.LogUtils; |
4 | +import lombok.Builder; | |
5 | +import lombok.Data; | |
4 | 6 | |
5 | 7 | /** |
6 | 8 | * @author dy |
7 | 9 | * @date 2021/03/10 |
8 | 10 | */ |
11 | +@Data | |
12 | +@Builder | |
9 | 13 | public class Command { |
10 | 14 | private String description; |
11 | 15 | private byte[] bytes; |
16 | + private String host; | |
17 | + private int port; | |
12 | 18 | |
13 | - public Command(String description, byte[] bytes) { | |
19 | + public Command(String description, byte[] bytes, String host, int port) { | |
14 | 20 | this.description = description; |
15 | 21 | this.bytes = bytes; |
22 | + this.host = host; | |
23 | + this.port = port; | |
16 | 24 | } |
17 | 25 | |
18 | 26 | @Override |
... | ... | @@ -20,19 +28,4 @@ public class Command { |
20 | 28 | return description + " " + LogUtils.toHexString(bytes); |
21 | 29 | } |
22 | 30 | |
23 | - public String getDescription() { | |
24 | - return description; | |
25 | - } | |
26 | - | |
27 | - public void setDescription(String description) { | |
28 | - this.description = description; | |
29 | - } | |
30 | - | |
31 | - public byte[] getBytes() { | |
32 | - return bytes; | |
33 | - } | |
34 | - | |
35 | - public void setBytes(byte[] bytes) { | |
36 | - this.bytes = bytes; | |
37 | - } | |
38 | 31 | } | ... | ... |
src/main/java/com/example/mina/client/test/MinaClient.java
... | ... | @@ -3,7 +3,6 @@ package com.example.mina.client.test; |
3 | 3 | import com.example.mina.client.aeroflex.AeroflexClient; |
4 | 4 | import com.example.mina.client.aeroflex.AeroflexClientHandler; |
5 | 5 | import com.example.mina.client.coder.ByteFactory; |
6 | -import com.example.mina.client.entity.Command; | |
7 | 6 | |
8 | 7 | public class MinaClient { |
9 | 8 | |
... | ... | @@ -33,8 +32,7 @@ public class MinaClient { |
33 | 32 | // cf.getSession().getCloseFuture().awaitUninterruptibly(); |
34 | 33 | // |
35 | 34 | // connector.dispose(); |
36 | - new AeroflexClient(new ByteFactory(), new AeroflexClientHandler(new Command("AeroflexClient", new byte[4]))) | |
37 | - .start("localhost", 9100); | |
35 | + new AeroflexClient(new ByteFactory(), new AeroflexClientHandler()).start(); | |
38 | 36 | |
39 | 37 | |
40 | 38 | } | ... | ... |