Channel

Channel是network socket或能够执行IO操作(如read,write,connect,bind)的组件的纽带。

Channel为用户提供:

通道的当前状态(例如它是否打开?是否已连接?)
通道的配置参数(例如接收缓冲区大小)
通道支持的I/O操作(例如读,写,连接和绑定)
ChannelPipeline,用于处理与通道关联的所有I/O事件和请求

所有IO操作都是异步的。
Netty中的所有IO操作都是异步的。这意味着任何IO调用都将立即返回,并且不保证在调用结束时所请求的IO操作已完成。
相反,您将返回一个ChannelFuture实例,该实例将在请求的IO操作成功,失败或取消时通知您。

Channel是分层的
一个Channel可以拥有一个父母,具体取决于它的创建方式。例如,ServerSocketChannel接受的SocketChannel将返回ServerSocketChannel作为parent()的父级。

层次结构的语义取决于Channel所属的传输实现。例如,您可以编写一个新的Channel实现,创建共享一个套接字连接的子通道,如BEEP和SSH那样。

向下转发以访问特定于传输的操作
某些传输会暴露特定于传输的其他操作。将Channel向下转换为子类型以调用此类操作。例如,使用旧的I/O数据报传输,由DatagramChannel提供多播加入/离开操作。

释放资源
完成Channel后,调用close()或close(ChannelPromise)来释放所有资源非常重要。这确保以适当的方式释放所有资源,即文件句柄。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值