Netty-基础篇(2)

发布时间 2023-11-18 23:39:22作者: 轻寒

ByteBuf——Netty的数据容器

概念:Netty提供的字节容器,可以对字节进行高效操作,包括读写、查找等。

数据处理组件

1.abstract class ByteBuf

2.interface ByteBufHolder

ByteBuf API的优点:

1.它可以被用户自定义的缓冲类型扩展

2.通过内置的复合缓冲区类型实现了透明的零拷贝

3.容量可以按需增长(类似于JDK的StringBuilder)

4.在读和写这两种模式之间切换不需要调用ByteBuffer的flip()方法

5.读和写使用了不同的索引

6.支持方法的链式调用

7.支持引用计数

8.支持池化

 

Codec

概念:用于在ChannelPipeline中进行数据编码和解码的组件,如字符串编解码器、对象序列化编解码器等。

 

ServerBootstrap 与 Bootstrap(引导类)

Bootstrap(客户端)

1.连接到远程主机和端口

2.Bootstrap 是客户端的引导类,Bootstrap 在调用 bind()(连接UDP)和 connect()(连接TCP)方法时,会新创建一个 Channel,仅创建一个单独的、没有父 Channel 的 Channel 来实现所有的网络交换。

ServerBootstrap(服务器)

1.绑定到一个本地端口

2.ServerBootstrap 是服务端的引导类,ServerBootstarp 在调用 bind() 方法时会创建一个 ServerChannel 来接受来自客户端的连接,并且该 ServerChannel 管理了多个子 Channel 用于同客户端之间的通信。