首页 > 其他 > 详细

启动配置类Bootstrap 和 ServerBootstrap

时间:2020-01-19 11:14:07      阅读:508      评论:0      收藏:0      [点我收藏+]

技术分享图片

ServerBootStrap是Netty服务端启动配置类,BootStrap是Netty客户端启动配置类。

一、BootStrap

//服务器端
Bootstrap serverBp = new Bootstrap();
  • 绑定线程组,设置react模式的主线程池 以及 IO 操作线程池

group(bossGroup, workerGroup)

  • channel(Class<? extends C> channelClass)

设置通讯模式,调用的是实现io.netty.channel.Channel接口的类。如:NioSocketChannel、NioServerSocketChannel,客户端一般选NioSocketChannel,服务端一般选NioServerSocketChannel。

  • option / handler / attr 方法
    • option: 设置通道的选项参数, 对于服务端而言就是ServerSocketChannel, 客户端而言就是SocketChannel;
    • handler: 设置主通道的处理器, 对于服务端而言就是ServerSocketChannel,也就是用来处理Acceptor的操作;对于客户端的SocketChannel,主要是用来处理 业务操作;
    • attr: 设置通道的属性;

option / handler / attr方法都定义在AbstractBootstrap中, 所以服务端和客户端的引导类方法调用都是调用的父类的对应方法。

 

我们先从一段代码入手:

EventLoopGroup group = new NioEventLoopGroup();
try {
    Bootstrap bootstrap = new Bootstrap();
    bootstrap.group(group)
            .channel(NioSocketChannel.class)
            .option(ChannelOption.SO_KEEPALIVE, true)
            .handler(new ChannelInitializer<SocketChannel>() {
                @Override
                protected void initChannel(SocketChannel ch) throws Exception {
                    //......
                }
            });
    //发起同步连接操作
    ChannelFuture channelFuture = bootstrap.connect("localhost", 8080).sync();
    channelFuture.channel().closeFuture().sync();
} catch (InterruptedException e) {
    e.printStackTrace();
}finally{
    //关闭,释放线程资源
    group.shutdownGracefully();
}

 

 

 

 

 

 

 

 

二、ServerBootStrap

 

启动配置类Bootstrap 和 ServerBootstrap

原文:https://www.cnblogs.com/myitnews/p/12212807.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!