例子描述
使用网络调试助手,向固定端口发送数据,netty
可以采集该端口的数据。
该例子有以下的特点
NettyClient
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| bootstrap .group(group) .channel(NioSocketChannel.class) .handler(new ChannelInitializer<SocketChannel>() { @Override protected void initChannel(SocketChannel ch) { ch.pipeline().addLast(new IdleStateHandler(30, 0, 0, TimeUnit.SECONDS)); ch.pipeline().addLast(new ClientConnect(netty)); ch.pipeline().addLast(new LengthFieldBasedFrameDecoder(100, 0, 4, 0, 0, true)); ch.pipeline().addLast(new ClientHandler()); } });
|
这个比较有意思的是增加了两个处理器,一个专门用来管理连接,一个专门用来管理数据处理。
连接代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| public void connect() { System.out.println(Thread.currentThread()); bootstrap.connect("127.0.0.1", 5566).addListener(new ChannelFutureListener() { @Override public void operationComplete(ChannelFuture future) throws Exception { if (future.isSuccess()) { System.out.println("连接成功"); } else { System.out.println("连接失败");
future.channel().eventLoop().schedule(new Runnable() { @Override public void run() { System.out.println("重新连接"); connect(); } }, 5, TimeUnit.SECONDS); } }
; }); }
|
下载代码 rar 压缩包