netty源码学习笔记--Channel的定义

Channel是netty的核心组件,作为服务端和客户端的抽象代表

下面是基于Netty4画出的Channel接口继承关系

 

channel 接口继承体系已经梳理完,

具体的实现 按以下规则分类:括号内的是表示类名中含有该关键字则表示对应的分类

传输协议:udp/ip (Datagram), tcp/ip (Socket),sctp/ip (Sctp), http2(Http2Stream)

所属类型:客户端,服务端(带Server的),进程间通信(Domain),(使用udp/ip协议的不区分客户端和服务端)

 

接下来是各接口提供的功能定义:

接口名作用

AttributeMap

提供属性<AttributeKey,AttributeValue>查询 ,

该接口的实现需要线程安全

ChannelOutBountInvoker

提供IO 输出相关操作

Comparable

用来比较Channel的ChannelId

Channel

netty核心接口,套接字组件的抽象,

提供操作相关接口,

如write,read,connect,accept等

ServerChannel

该接口不提供额外的方法,

只是用来标志是一个服务端的Channel,

接收来自客户端的连接后创建对应的子Channel

UnixChannel

暴露仅在类Unix系统上提供的操作,如Epoll

DuplexChannel

标志该channel是双工的

DatagramChannel

使用UDP/IP协议来收发数据的Channel

Http2StreamChannel

采用http2协议的Channel,该接口应该还没设计完,

被标记为了@UntableApi,目前仅有一个直接实现类

SctpServerChannel

采用SCTP/IP协议的Channel,

SCTP采用的是组播的通信方式,

因此该Channel可绑定多个宿主地址

ServerSocketChannel

采用TCP/IP协议的服务端Channel,

仅接收采用TCP/IP协议的客户端连接

ServerDomainSocketChannel

类Unix系统上用来接收 进程间通信(IPC) 的Channel

SocketChannel

采用TCP/IP协议的Channel

DomainSocketChannel

类Unix系统上用来 进程间通信(IPC) 的Channel

 

posted @ 2019-06-03 17:29  英长  阅读(674)  评论(0编辑  收藏  举报