zoukankan      html  css  js  c++  java
  • 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:可写

      

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

  • 相关阅读:
    动画电影分享
    Nginx 学习
    震惊!一步激活idea,亲测有效-2020-7-9
    根据oracle判断语句结果,进行循环语句
    Oracle11g的exp导出空表提示EXP-00011: 不存在
    查询某个用户下各个表的数据量
    Oracle批量修改表字段类型(存储过程)
    PLS-00201: identifier 'SYS.DBMS_EXPORT_EXTENSION' must be declared
    Oracle AWR报告生成和大概分析
    oracle如何给原有的用户变更表空间
  • 原文地址:https://www.cnblogs.com/tflike/p/13748344.html
Copyright © 2011-2022 走看看