netty 学习(1)

  Netty使用:通过BootStrap来启动。而BootStrap主要分为两类:1.面向连接(TCP)的(ClientBootStrap和ServerBootStrap);2. 非面向连接(UDP)的(ConnectionlessBootstrap).

  Channel分为ChannelFactory和ChannelPipelineFactory。前者主要生产网络通讯相关的Channel实例和ChannelSink实例;后者主要用于具体的传输数据的处理。

  使用步骤

  1. 实例化一个BootStrap,并通过构造方法指定一个ChannelFactory;
  2. 向bootstrap实例注册一个自己实现的PipelineFactory;
  3. 服务器:bootstrap.bind(new InetSocketAddress(port)),等待客户端来连接;客户端:bootstrap.connect(new InetSocketAddress(host, post))取得一个future,Netty会去连接远程主机。完成连接后,会发起类型为CONNECTED的ChannelStateEvent,并且开始在自定义的Pipeline里面流转。
  4. 如果注册的handler有这个事件的响应方法,那么就会被调用到。

  处理策略

  NIO:BOOS(1个)处理连接接入,WORKER(多个)处理boss传递过来的channel数据,并触发相应事件传递给pipeline进行数据处理。

  BIO:

参考:Netty代码分析

------------------------------------------------------------------------------------------------------------------------------------------ 需要荷兰版牛栏、荷兰美素、母婴用品的攻城师、设计师朋友,欢迎关顾【七彩母婴店】【http://qicaoyun.taobao.com】。凡是从博客园得知信息的,全店商品,均可优惠,请告知客服哦。你也可以通过淘代码【D5867219】,在淘宝搜索到我们。收藏有礼哦!
原文地址:https://www.cnblogs.com/javawer/p/3240223.html