netty关键字

netty

  生成NioEventLoopGroup两个实例:bossGroup接收客户端传过来的请求,workerGroup处理后续操作

  bootstrap为netty程序启动添加组件

  nioserversocketchannel管理serversocketchannel实例

  channelhander:设置业务职责链,通过多个channelhander串联而成(业务处理

自定义一个类 HttpServerInitializer 继承 ChannelInitializer 并实现其中的 initChannel方法

ChannelPipeline pipeline = sc.pipeline();
ChannelPipeline:新的连接被接受后创建的channel分配处

buffer

  本质读写的内存,三个属性:capacity、position和limit

  capacity:容器大小

  position:读写的起始位置

  limit:能用的空间大小

  buffer分配:allocate方法分配初始值

  写数据到buffer的两种方式

  1、int bytes = channel.read(buf);从channel中的数据读取到buf中

  2、buf.put(byte);将数据通过put方法写入到buf

  读数据

  1、int bytes = channel.write(buf); 将buffer中的数据读取到channel

  2、byte bt = buf.get() 冲buf中读取一个byte

  读写模式的切换

  flip方法:调用flip方法后写模式切换成读模式,position=0,limit为原来的position

  rewind:Buffer.rewind()吧position=0,limit不变

  clear:position=0 limit=capacity但是buff并未清

  compact:将所有未读数据拷贝到起始处,position设置成未读元素的后边,limit=capacity

selector(多路复用器)

selector,channel相互配合使用。channel注册在selector上

selector监听channel四种状态

connect:某个客户端连接成功

accept:准备好进行连接

read:可读

write:可写

  

------------恢复内容结束------------

原文地址:https://www.cnblogs.com/tflike/p/13748344.html