1_netty基础组件

2018-06-13  本文已影响0人  loading_17

Netty是一个异步的事件驱动网络应用框架。


1. 核心组件

public class ConnectHandler extends ChannelInboundHandlerAdapter {
  @Override
 public void channelActive(ChannelHandlerContext ctx)
                throws Exception {
      System.out.println(
               "Client " + ctx.channel().remoteAddress() + " connected");
  }
 }
Channel channel = ...;
//非阻塞
//异步连接
ChannelFuture future = channel.connect(
          new InetSocketAddress("192.168.0.1",25));
Channel channel = ...;
//非阻塞
//异步连接
ChannelFuture future = channel.connect(
        new InetSocketAddress("192.168.0.1",25));
//注册一个ChannelFutureListener,一旦操作完成就会执行operationComplete
future.addListener(new ChannelFutureListener(){
  public void operationComplete(ChannelFuture future){
  //检查操作状态  
  if(future.isSuccess()){
      //如果操作成功,创建一个ByteBuf来保存数据
       ByteBuf buffer = Unpooled.copiedBuffer(
              "Hello",Charset.defaultCharset());
        //异步发送数据
        ChannelFuture wf = future.channel()
                        .writeAndFlush(buffer);
         ....
    }else{
        Throwable cause = future.cause();
        cause.printStackTrace();
    }
  }
})

下图就是入站和出站的事件在ChannelHandlers中流向


上一篇 下一篇

猜你喜欢

热点阅读