Netty源码注释翻译-Channel类

定义为一个通往网络socket或者一个由I/O读写能力的组件。

通道提供:
1,通道的当前状态,打开?已连接?
2,跟通道关联的配置信息ChannelConfig,包括buffer大小等。
3,通道支持的I/O操作,如读、写、连接、绑定等。
4,跟通道关联的ChannelPipeline,用来处理通道的I/O事件和请求。

所有的I/O操作都是异步的。

在Netty中,左右的I/O操作都是异步的,这意味着任何的I/O相关调用都会立即返回,因此这不能保证在这个调用返回的时候I/O请求能够被处理完成。然而,调用返回的ChannelFuture实例在I/O请求操作成功的时候会通知你。

Channel的继承,Channel接口提供了parent()方法,方法的使用依赖于Channel的创建方式。例如:一个被ServerSocketChannel accepted的SocketChannel,parent()方法会返回ServerSocketChannel

继承结构的语义依赖于Channel所属通信方式的实现,例如:你可以写一个新的Channel实现,通过实现创建一个子通道来共享一个socket连接,as BEEP and * SSH do.

转换为子类对象来获取对transport的特殊的操作。Downcast Channel为子类型来调用相关方法,如:对于老的报文传输,多点传输操作join/leave是由DatagramChannel提供的。

时间: 2024-09-07 11:12:08

Netty源码注释翻译-Channel类的相关文章

Netty源码解读(一)概述

感谢网友[黄亿华]投递本稿. Netty和Mina是Java世界非常知名的通讯框架.它们都出自同一个作者,Mina诞生略早,属于Apache基金会,而Netty开始在Jboss名下,后来出来自立门户netty.io.关于Mina已有@FrankHui的Mina系列文章,我正好最近也要做一些网络方面的开发,就研究一下Netty的源码,顺便分享出来了. Netty目前有两个分支:4.x和3.x.4.0分支重写了很多东西,并对项目进行了分包,规模比较庞大,入手会困难一些,而3.x版本则已经被广泛使用.

Backbone.js 0.9.2 源码注释中文翻译版_基础知识

// Backbone.js 0.9.2 // (c) 2010-2012 Jeremy Ashkenas, DocumentCloud Inc. // Backbone may be freely distributed under the MIT license. // For all details and documentation: // http://backbonejs.org (function() { // 创建一个全局对象, 在浏览器中表示为window对象, 在Node.j

wsdl-webservices生成的源码怎么区分实体类

问题描述 webservices生成的源码怎么区分实体类 谁知道webservice的wsdl使用wsimport的cmd命令生成的源码怎么区分出来实体类的java文件,我没有C币了,求好心人解答 解决方案 这个应该很简单吧,你直接看WSDL文件,找到最下边,一般规范一点的都是最下边有一个什么什么name的,一般就是文件名...现在没法回答,等晚上看看 解决方案二: 一般查看wsdl描述文件,里面有详细的参数的说明.此外,现在流行更轻量级的json文本,这个才是当前的主流.

Netty源码解读(三)Channel与Pipeline

Channel是理解和使用Netty的核心.Channel的涉及内容较多,这里我使用由浅入深的介绍方法.在这篇文章中,我们主要介绍Channel部分中Pipeline实现机制.为了避免枯燥,借用一下<盗梦空间>的"梦境"概念,希望大家喜欢. 一层梦境:Channel实现概览 在Netty里,Channel是通讯的载体,而ChannelHandler负责Channel中的逻辑处理. 那么ChannelPipeline是什么呢?我觉得可以理解为ChannelHandler的容器

Netty源码解读(四)Netty与Reactor模式

一:Netty.NIO.多线程? 时隔很久终于又更新了!之前一直迟迟未动也是因为积累不够,后面比较难下手.过年期间@李林锋hw发布了一个Netty5.0架构剖析和源码解读 ,看完也是收获不少.前面的文章我们分析了Netty的结构,这次咱们来分析最错综复杂的一部分-Netty中的多线程以及NIO的应用. 理清NIO与Netty的关系之前,我们必须先要来看看Reactor模式.Netty是一个典型的多线程的Reactor模式的使用,理解了这部分,在宏观上理解Netty的NIO及多线程部分就不会有什么

Netty源码解读(二)Netty中的buffer

感谢网友[黄亿华]投递本稿. 上一篇文章我们概要介绍了Netty的原理及结构,下面几篇文章我们开始对Netty的各个模块进行比较详细的分析.Netty的结构最底层是buffer模块,这部分也相对独立,我们就先从buffer讲起. What: buffer二三事 buffer中文名又叫缓冲区,按照维基百科的解释,是"在数据传输时,在内存里开辟的一块临时保存数据的区域".它其实是一种化同步为异步的机制,可以解决数据传输的速率不对等以及不稳定的问题. 根据这个定义,我们可以知道涉及I/O(特

Thrift的代码生成器Compiler原理及源码详细解析 1 类关系图

最近忙着研究GlusterFS,本来周末打算写几篇博客的,但是由于调试GlusterFS的一些新增功能就 用了整整的一天,还有一天就陪老婆大人逛街去了!今晚浏览完微博发现时间还早就来博客一篇,本篇 博客内容主要是前一段时间研究的Thrift的代码生成器的源码详细分析,没有具体分析语法解析,因为 是工具字段生成的代码,人是没有办法阅读的----到处都是跳转表!由于Thrift支持N多种语言,但是 生成代码原理都差不多,我主要分析了C++相关代码生成.关于Thrift的使用及原理.代码网上基本上 都

Thrift的TProtocol类体系原理及源码详解:类继承架构分析

这部分相关的类主要实现与协议相关的内容,这里说的协议是指对数据传输格式封装的协 议,实现不同的协议来适合不同场景下的数据传输,因为在不同的场景下不同协议对于数据 传输来说效率有很大的差别.下面是这个部分相关类的类关系图: 由以上类图可以发现所有的协议类都从TProtocol类直接或间接继承,每一个协议 类都有一个对应的生产对象工厂(协议工厂).TProtocol是一个抽象的类,不能直接使用的 ,它有一个直接子类默认实现了所有方法(空实现),如果我们需要定义自己的数据传输协 议可以直接从这个类继承

Hive源码分析:Driver类运行过程

说明: 本文的源码分析基于hive-0.12.0-cdh5.0.1. 概括 从<hive cli的入口类>中可以知道hive中处理hive命令的处理器一共有以下几种: (1)set SetProcessor,设置修改参数,设置到SessionState的HiveConf里. (2)dfs DfsProcessor,使用hadoop的FsShell运行hadoop的命令. (3)add AddResourceProcessor,添加到SessionState的resource_map里,运行提交