美文网首页
Netty——服务端简易开发

Netty——服务端简易开发

作者: 大黑跟小白的日常 | 来源:发表于2019-02-19 11:14 被阅读125次

Netty —— NIO 编程框架 服务端开发

几个关键的类

EventLoopGroup、NioEventLoopGroup

ServerBootstrap // Netty用于启动NIO服务端的辅助启动类

NioServerSocketChannel // 对应NIO的ServerSocketChannel,一种连接处理方式

ChannelInitializer // 具体I/O处理类初始化配置类

ChannelHandlerAdapter // 具体I/O处理类适配类

简单使用

服务端代码

1、创建两个线程池组

    EventLoopGroup bossGroup = new NioEventLoopGroup(2);// 用于服务端接受客户端连接

    EventLoopGroup workerGroup = new NioEventLoopGroup(4);// 用于进行SocketChannel的网络读写

2、创建Netty用于启动NIO服务端的辅助类对象

    ServerBootstrap b = new ServerBootstrap();

3、NIO服务端启动辅助类对象设置

    b.group(bossGroup, workerGroup) // 添加线程组

                    .channel(NioServerSocketChannel.class) // 对应NIO的ServerSocketChannel

                    .option(ChannelOption.SO_BACKLOG, 1024) // 配置NIO TCP相关参数

                    .childHandler(new ChildChannelHandler()); // 绑定I/O实际的处理类

4、绑定端口,同步等待操作完成

    ChannelFuture f = b.bind(port).sync(); // 返回的ChannelFuture类似于juc中的Future,用于异步操作的通知回掉

5、等待服务端监听端口关闭,然后将main函数退出

    f.channel().closeFuture().sync(); // 同步等待异步回掉关闭通知

6、退出,释放资源

    bossGroup.shutdownGracefully();

    workerGroup.shutdownGracefully();

如下代码

I/O操作处理类初始化配置类

具体channel I/O操作处理类

服务端启动

相关文章

网友评论

      本文标题:Netty——服务端简易开发

      本文链接:https://www.haomeiwen.com/subject/pngweqtx.html