Netty-基础篇(2)
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 用于同客户端之间的通信。