最后一步,把Encoder像之前Decoder一样加到ChannelPipeline里面。你懂的。
client.handler(new ChannelInitializer<SocketChannel>() { @Override protected void initChannel(SocketChannel ch) throws Exception { ch.pipeline().addLast(new TimeDecoder(), new TimeClientHandler());//客户端解码 加进去 } }); server.group(bossGroup, workerGroup) .channel(NioServerSocketChannel.class) .childHandler(new ChannelInitializer<SocketChannel>() { @Override protected void initChannel(SocketChannel ch) throws Exception { ch.pipeline().addLast(new TimeEncoder2(), new TimeServerHandler());//服务端直接操作UnixTime,需要编码,加进去 } }) .option(ChannelOption.SO_BACKLOG, 128) .childOption(ChannelOption.SO_KEEPALIVE, true);代码结构看起来是这样的
关闭程序关闭比较简单,调用shutdownGracefully()即可,然后会返回一个Future对象。
小结强烈建议看看官方的例子。