主要成员和方法
在Netty中,通道是其中的核心概念之一,代表着网络连接。通道是通信的主题,由它负责同对端进行网络通信,可以写入数据到对端,也可以从对端读取数据。
AbstractChannel:抽象类通道。内部有pipeline属性,表示处理器的流水线。Netty在对通道进行初始化的时候,将pipeline属性初始化为DefaultChannelPipeline的实例,也表示每个通道都有一条ChannelPipeline处理器流水线。
AbstractChannel内部有一个parent属性,表示通道的父通道。对于连接监听通道(NioServerSocketChannel实例)来说,其父通道为null;而对于每一条传输通道(如NioServerChannel实例),其parent属性的值为接收到该连接的服务器连接监听通道。
重要方法:
1)、ChannelFuture connect(SocketAddress address);
2)、ChannelFuture bind(SocketAddress address);
3)、ChannelFuture close();
4)、Channel read();
5)、ChannelFuture write(Object o);
6)、Channel flush();
EmbeddedChannel 嵌入式通道
EmbeddedChannel 仅仅是模拟入站与出站的操作,底层不进行实际的传输,不需要启动 Netty
服务器和客户端。除了不进行传输之外,EmbeddedChannel 的其他的事件机制和处理流程和真正的
传输通道是一模一样的。因此,使用它,开发人员可以在开发的过程中方便、快速地进行
ChannelHandler 业务处理器的单元测试。
最为重要的两个方法为:writeInbound 和 readOutbound 方法。
方法1:writeInbound入站数据写到通道
方法2:readOutbound读取通道的出站数据