1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package io.netty5.example.echo;
17
18 import io.netty5.buffer.api.Buffer;
19 import io.netty5.channel.ChannelHandler;
20 import io.netty5.channel.ChannelHandlerContext;
21
22
23
24
25
26
27 public class EchoClientHandler implements ChannelHandler {
28
29
30
31
32 public EchoClientHandler() {
33 }
34
35 @Override
36 public void channelActive(ChannelHandlerContext ctx) {
37 Buffer firstMessage = ctx.bufferAllocator().allocate(EchoClient.SIZE);
38 for (int i = 0; i < firstMessage.capacity(); i ++) {
39 firstMessage.writeByte((byte) i);
40 }
41 ctx.writeAndFlush(firstMessage);
42 }
43
44 @Override
45 public void channelRead(ChannelHandlerContext ctx, Object msg) {
46 ctx.write(msg);
47 }
48
49 @Override
50 public void channelReadComplete(ChannelHandlerContext ctx) {
51 ctx.flush();
52 }
53
54 @Override
55 public void channelExceptionCaught(ChannelHandlerContext ctx, Throwable cause) {
56
57 cause.printStackTrace();
58 ctx.close();
59 }
60 }