`

netty学习之ServerChannel

阅读更多

首先我们先来看serverchannel的类继承层次,然后再一个一个的研究。




   现在我们来挨个的介绍各个类。

    AbstractChannel应该是整个Channel子类的父类,这个里面有一个static的变量allChannels,这个里面放着所有的channel,现在还不能体会放这个得好处。里面感觉没有什么特殊的,allocateId这个方法应该是给channel分配一个id,System.identityHashCode这个方法就是根据对象的内存地址来生成hashCode的,putIfAbsent这个方法是CurrentHashMap的方法,就是如果没有就put,如果存在就返回,这个名字起的挺好的。

         我们再来看它的局部变量:

 

 private final Integer id;
    private final Channel parent;
    private final ChannelFactory factory;
    private final ChannelPipeline pipeline;
    private final ChannelFuture succeededFuture = new SucceededChannelFuture(this);
    private final ChannelCloseFuture closeFuture = new ChannelCloseFuture();
    private volatile int interestOps = OP_READ;

    /** Cache for the string representation of this channel */
    private boolean strValConnected;
    private String strVal;

 这个里面没有什么特殊的,不过从局部变量来看,可以看到一个channel的整个职责,一个id,一个parent,和一个创建它的ChannelFactory,和这个Channel相对应的ChannelPipeline,和相应的success future和closefuther,后面的两个变量是这个channel的名称,相对来说这个类还是比较好理解的,以后还会对整个类层次的意图进行讲解的。

   AbstractServerChannel应该是整个ServerChannel的抽象父类了,也感觉没什么,就不多讲解了。

        LocalServerChannel是也是一个接口,是用来进行local 传输的,这个比较简单。

          NioServerSocketChannel和OioServerSocketChannel这两个类应该是我们平时用的最多的类,这两个类封装了在nio和bio下面创建ServerSocket的不同,总之是比较简单的。

 

 

 

  • 大小: 72.5 KB
分享到:
评论
1 楼 qq327216153 2014-01-16  
[color=red][/color]
[img][/img][url][/url]
[align=left]
[/align]
引用
[list]
[*]
[/list]

呵呵,玩一下这个评论。

相关推荐

    NettyDemo-master.zip

    NettyDemo-master.zip 文件包含了基于 Netty 的一个 Android 应用示例,通过这个 demo,开发者可以学习如何在 Android 平台上利用 Netty 实现高效的网络通信。 1. **Netty 框架概述** - Netty 是由 JBoss 提供的一...

    java应用netty服务端和客户端

    Java应用程序中的Netty框架是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。Netty广泛应用于分布式系统、云计算、大数据处理等领域,它的核心特性包括非阻塞I/O、...

    java物联网的netty服务器

    Java物联网的Netty服务器是一种基于Java的高性能网络应用框架,主要应用于开发高并发...通过深入学习和实践这个项目,开发者可以掌握利用Netty构建物联网服务器的关键技术,为构建高效、可靠的物联网应用打下坚实基础。

    Netty Protobuf3 测试服务器

    4. 配置Netty服务器:使用Bootstrap创建ServerBootstrap实例,设置EventLoopGroup(线程池)和ServerChannel,添加自定义的ChannelHandler到管道中。 5. 绑定并启动服务器:指定服务器监听的端口,调用bind()方法...

    netty5实现的socket服务器

    尽管在本示例中没有具体提及 `netty5socket` 压缩包的文件内容,但通常这个文件可能包含了服务器配置、Handler 类和其他相关辅助类的源代码,供学习和参考。通过研究这些代码,开发者可以更深入地理解 Netty 在实际...

    netty简易时间和操作系统查询服务器源码

    2. **ByteBuf**:学习如何使用Netty提供的高效二进制数据容器进行数据读写。 3. **自定义处理器**:编写自己的处理器类,处理特定的业务逻辑。 4. **网络通信协议**:理解简单的自定义协议,如何设计和实现客户端与...

    Netty中实现多客户端连接与通信-以实现聊天室群聊功能为例示例代码.rar

    `ServerBootstrap`是用于服务器端的Bootstrap,它可以配置服务器的参数,并用于创建`ServerChannel`。`ChannelHandler`处理网络事件,如连接、读写等。`ChannelHandlerContext`是`ChannelHandler`与`Channel`之间的...

    netty5 HTTP协议栈浅析与实践

    2. 创建 ServerBootstrap 对象,设置 EventLoopGroup(处理 I/O 事件的线程组)和 ServerChannel(监听客户端连接的通道)。 3. 配置 ChannelPipeline,添加 HTTP 编解码器和其他处理器,如业务逻辑处理器。 4. 绑定...

    Netty源码阅读笔记

    ServerChannel是Channel接口的一个子接口,用于表示服务器端的网络通道,如ServerSocketChannel。它支持对连接的接受、管理以及对数据的读写操作。 ChannelConfig是Netty中用于配置Channel属性的接口,它允许用户对...

    netty源码阅读笔记.pdf

    4. **ServerChannel**:ServerChannel是用于监听客户端连接的通道,例如TCP的ServerSocketChannel。它负责接收新连接,并将每个新连接转换为一个新的Channel实例。 5. **ChannelConfig**:ChannelConfig接口允许...

    netty-example:简单的客户端-服务器 netty 示例

    2. **ServerChannel**: 服务器监听的通道,如 NioServerSocketChannel,用于监听客户端的连接。 3. **ChannelInitializer**: 在新连接建立时,用于初始化 ChannelPipeline 的处理器链。你可以在这个初始化器中添加...

    本科毕业设计,基于netty 的web服务器以及基本开发框架.zip

    2. **ServerChannel**:服务器通道,监听客户端连接。 3. **Handler**:处理器,处理接收到的请求,解析HTTP报文,执行业务逻辑,并生成响应。 4. **Pipeline**:管道,负责消息的传输,可以根据需求添加多个...

    simple-netty-chat-server-client

    这个项目可以作为学习Netty和网络编程的一个起点,通过阅读和理解代码,可以深入理解Netty的工作原理以及如何构建实时通信应用。同时,也可以扩展功能,例如支持用户注册登录、私聊、群组聊天等功能,进一步提升技术...

Global site tag (gtag.js) - Google Analytics