首页 新闻 赞助 找找看

Netty的服务器端的Channel有到底有几个

0
悬赏园豆:200 [已解决问题] 解决于 2015-07-18 20:11

原文:一个 ServerBootstrap 可以认为有2个 Channel 集合,第一个集合包含一个单例 ServerChannel,代表持有一个绑定了本地端口的 socket;第二集合包含所有创建的 Channel,处理服务器所接收到的客户端进来的连接。

ServerBootstrap b = new ServerBootstap();
            b.group(group)                                //4
             .channel(NioServerSocketChannel.class)   

这个是教材中常见的代码。在这里我只见到了一个serverchannel,那么第二个集合的Channel在哪里,还是说第二个集合的Channel是服务器自己自动建立的,只是我感觉不到而已???????

还有客户端一般只有一个Channel吗??????

MR._K的主页 MR._K | 初学一级 | 园豆:22
提问于:2015-07-15 19:55
< >
分享
最佳答案
0

ServerBootstrap 和ClientBootstrap实际上只是一个帮助类,帮助你快速创建并实例Channel对象。

ServerBootstrap 初始化为会创建一个ServerAcceptor类,用于接受客户端的连接。每当有新的客户端连接成功,会自动创建一个Channel。

protected override void Init(IServerChannel channel)
{
       pipeline.AddLast(new ChannelInitializer<Channel>((ch) =>
            {
                ch.Pipeline.AddLast(new ServerBootstrapAcceptor(_childGroup, _childHandler, _childOptions));
            }));
}

ServerBootstrapAcceptor:初始化客户端连接的Channel.

ClientBootstrap只是创建一个连接的Channel.

收获园豆:200
拉风的拉灯 | 小虾三级 |园豆:585 | 2015-07-16 17:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册