Netty的Channel

Channel是一个网络端口连接,或者是可以进行读,写,链接,绑定端口的组件的连接。

 Channel就是一个链接,它提供了如下的功能。

1:获取当前链接的状态

2:配置当前链接参数

3:进行read,write,connect,bind等通道支持的操作。

4:该Channel关联的ChannelPipeLine处理所有的IO事件和绑定在这个channel的请求

Netty中所有的IO请求都是异步的,都立即返回一个ChannelFuture对象,而不包装调用结束完成,可以通过ChannelFuture对象获得IO操作的结果。

Channel是有层级关系的

如果想了解该Channel是怎么创建的,可以调用他的parent()返回他的构造父类,例如调用ServerSocketChannel的accept放回会返回一个Socketchannel对象,那么调用该对象的Parent()方法就会放回ServerSocketChannel,这种层级依赖关系,这种层级依赖Channel所在传输协议。例如,可以实现一个新的Channel然后创建一个子Channel来分享socket连接。比如BEEP和SSH

来自为知笔记(Wiz)

时间: 2024-09-30 06:25:58

Netty的Channel的相关文章

学习 java netty (三) -- Channel

学习 java netty (三) – Channel 前言:netty封装的channel,看一下官网的定义 A nexus to a network socket or a component which is capable of I/O operations such as read, write, connect, and bind. 可以I/O操作(如读,写,连接和绑定)的连网套接字或组件 A channel provides a user: All I/O operations a

netty解决channel管理,可广播消息

在Netty中提供了ChannelGroup接口,该接口继承Set接口,因此可以通过ChannelGroup可管理服务器端所有的连接的Channel,然后对所有的连接Channel广播消息. Server端: public class BroadCastServer { public static void run(int port) { EventLoopGroup boss = new NioEventLoopGroup(); EventLoopGroup worker = new NioE

关于Netty对于Channel超时机制缺陷的一点想法

我们看看ReadTimeoutHandler下面这个初始化方法,在初始化的时候做的一些事情,Netty的2个改进点我认为都在这里可以体现出来(下面红体): private void initialize(ChannelHandlerContext ctx) { // Avoid the case where destroy() is called before scheduling timeouts. // See: https://github.com/netty/netty/issues/1

Netty:Channel

我们通过一个简单的Netty代码了解到了Netty中的核心组件,这一篇我们将围绕核心组件中的Channel来展开学习. Channel的简介 Channel代表着与网络套接字或者能够进行IO操作(read.write.connect或者bind)的组件的联系,一个Channel向用户提供了如下内容: 1.Channel当前的状态,比如是否打开.是否连接: 2.Channel的配置参数,比如接收缓冲区的大小: 3.Channel支持的IO操作(read.write.connect或者bind):

3. Netty源码阅读之Channel

一.Channel介绍 Channel中的NioServerSocketChannel 和 NioSocketChannel 分别于 NIO中的 ServerSocketChannel.SocketChannel对应.不同的是,Netty的Channel将NIO中的Channel聚合在自己对象内部,并提供其他的功能操作. 二.Channel源码介绍 1. 常用方法介绍 eventLoop() Channel需要注册到EventLoop上的多路复用器上,通过该方法可获取到Channel注册的Eve

Netty中的那些坑

Netty中的那些坑(上篇) 最近开发了一个纯异步的redis客户端,算是比较深入的使用了一把netty.在使用过程中一边优化,一边解决各种坑.儿这些坑大部分基本上是Netty4对Netty3的改进部分引起的. 注:这里说的坑不是说netty不好,只是如果这些地方不注意,或者不去看netty的代码,就有可能掉进去了. 坑1: Netty 4的线程模型转变 在Netty 3的时候,upstream是在IO线程里执行的,而downstream是在业务线程里执行的.比如netty从网络读取一个包传递给

Netty 3.7.0 Final 第一篇

netty简介: 做游戏的都知道,netty和mina是网络层通讯流行的两种socket框架.mina出现的早些,属于apache,netty目前更新比较稳定,5暂时还处于alpha版本,本系列netty前四篇主要是介绍目前比较用的多的3系列,后面会简要的说到netty4和mina. netty是网络通讯框架,为什么要使用netty?使用netty有什么好处?基于Java nio的编程的难度其实可以参考Reactor模型,多路复用这些,监听端口,建立线程,关闭连接等等,这些想着都觉得很复杂,而我

【Netty】Netty核心组件介绍

一.前言 前篇博文体验了Netty的第一个示例,下面接着学习Netty的组件和其设计. 二.核心组件 2.1. Channel.EventLoop和ChannelFuture Netty中的核心组件包括Channel.EventLoop.ChannelFuture.下面进行逐一介绍. 1. Channel接口 基础的IO操作,如绑定.连接.读写等都依赖于底层网络传输所提供的原语,在Java的网络编程中,基础核心类是Socket,而Netty的Channel提供了一组API,极大地简化了直接与So

atitit.软件开发--socket框架选型--netty vs mina j

atitit.软件开发--socket框架选型--netty vs mina j . Netty是由JBOSS提供的一个java开源框架 Apache mina 三.文档比较 mina文档多,,, 好几倍... 作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:[email protected] 转载请注明来源: http://blog.csdn.net/attilax 四.UDP协议传输 1. netty将UDP无连接的特性暴露出来:而mina对UDP进行了高级层次的抽象,可以把UD