• Netty源码分析——准备


    之前在工作中应用过netty,现在有一次用到,彻底的总结一下源码,加深理解。

    Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.

    这是Netty官网介绍的Netty框架,netty框架的优势这里不过多介绍,用过netty的自然知道,本系列针对对netty有个应用经验的开发人员

    学习netty框架源码,需要几个前提

    • Java基础
    • Socket网络编程经验,最好明白nio原理
    • 多线程基础
    • 常用设计模式

    由于netty框架系统庞大,不可能直接从头到尾梳理,为了更好的学习和理解,我将netty拆分成了几个子流程。Netty系统设计的代码紧凑,重用性高,因此代码有些地方不太容易理解,即使拆分成几个子流程,流程之间的前后关联因为是非常紧密的。遇到不太明白的地方可以暂时跳过,重要把握主体脉络,最终融会贯通。

    我会从一个简单的服务器端代码,开始介绍。代码如下

     1 public class NettyServer {
     2 
     3     public static void main(String[] args) {
     4 
     5         EventLoopGroup boss = new NioEventLoopGroup(1);
     6         EventLoopGroup worker = new NioEventLoopGroup();
     7 
     8         try {   
     9             ServerBootstrap serverBootstrap = new ServerBootstrap()
    10                     .group(boss, worker)
    11                     .channel(NioServerSocketChannel.class)
    12                     .childHandler(new ChannelInitializer<SocketChannel>() {
    13 
    14                         @Override
    15                         protected void initChannel(SocketChannel ch) throws Exception {
    16                             ch.pipeline().addLast(new ServerHandler());
    17                         }
    18                     });
    19                 
    20 
    21             ChannelFuture channelFuture = serverBootstrap.bind(6666).sync();
    22             channelFuture.channel().closeFuture().sync();
    23 
    24         } catch (Exception e) {
    25             // TODO Auto-generated catch block
    26             e.printStackTrace();
    27         } finally {
    28             boss.shutdownGracefully();
    29             worker.shutdownGracefully();
    30         }
    31 
    32     }
    33 }

    不废话了,开始啃。
    具体子流程包括:

    后面详细讲解每一个子流程。

  • 相关阅读:
    升级WP应用时注意的问题——WMAppManifest.xml
    MVVM Light (Part 4)
    Windows Phone 7的About模板——Your Last About Dialog(2)支持多语言
    MVVM Light 开始
    在ScheduledTaskAgent中使用HttpWebRequest
    年会抽奖程序 支持单次单个抽奖和单次多个抽奖,自定义抽奖设置
    WIndows Phone 7的MVVM Light框架
    MVVM Light (Part 3)
    MVVM Light 行为
    [转]如何在设计中应用颜色搭配技巧
  • 原文地址:https://www.cnblogs.com/chirsli/p/12539347.html
Copyright © 2020-2023  润新知