netty框架之bootstrap.bind(port).sync()无死角解刨

疑惑

 

bootstrap.bind(port)是绑定端口 .channel(NioServerSocketChannel.class)是负责监听的,为什么是先监听代码后绑定代码呢

解惑:不是的,.channel(NioServerSocketChannel.class)是通道标识,这个代码是客户端还是服务器

           bootstrap.bind(port)也是bootstrap的重点,先绑定端口,创建连接的;封装底层代码;


f.channel().closeFuture().sync();

疑惑:这个是等待服务器关闭?我只想知道服务器关闭了还能接受其他的客户端连接么?

解惑:f.channel();通过ChannelFuture可以获取到Channel,从而利用Channel在通道上进行读、写、关闭等操作;

          看下面图片你就知道了


 ChannelFuture f = bootstrap.bind(port).sync();

疑惑:既然有客户端需要连接,为什么绑定端口要设置成异步的?又不会阻塞?

解惑:因为这个代码是封装的,不仅仅是绑定端口号,更是建立连接,server.accpet();这个是阻塞的,所以是异步;


疑惑:netty框架中涉及通道,我想知道一个服务器端的netty框架有几个通道?

解惑:根据连接客户端的数量决定;服务端处理初始化的时候只有一个服务器类型的通道,但是当客户端连接数多的时候就会注册通道;


疑惑:绑定端口就是bootstrap启动类开始运作的时候,那么怎么建立连接呢?

解惑:bootstrap.bind(port).sync();这个代码底层就是server.accpet()建立连接。


 

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_37591637

请给我持续更新的动力~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值