netty (二) serverBootstrap 和 channelFuture

这个类是Bootstrap的子类,更容易的来启动serverchannel

设置两个Eventloopgroup,(父子或者work/boss),用来处理severchannel和channel的所有事件和io。

使用给定的channelClass类型来创建channel(一般指boss的eventloopgroup)。如果channel的实现有无参的构造方法也可以使用ChannelFactory方法。

指定channelHandler来客户端channel

指定channelHandler来服务端channel

创建一个socketAddress并且绑定,返回一个channelFuture对象

等待这个future对象完成或者重新抛出失败的异常

返回产生这个channelFuture的channel对象。

当channel关闭的时候通知到的channelFuture

channelfuture ;

channelfuture是异步channel io操作的返回结果。

netty中所有的io操作都是异步的,这意味着任何的io操作调用都会立即返回结果,但是不保证io操作在调用返回之后就会执行完成。取而代之的是会返回给你一个channelfuture实例,你可以获取io操作的结果或者状态信息

channelfuture要么完成要么未完成。当io操作开始的时候,新的future对象会被创建。这个channel最初是不完整的,它既没有成功,也没有失败,也没有取消,因为I/O操作还没有完成。io操作完成可能是成功,失败,或者取消,这个future都会被标记完成且会有具体的消息,例如失败的原因。

提供了多种方法,可以检测io操作是否完成,等待完成,获取io操作的结果。你也可以添加channelfuturelistener,当io操作完成之后你就可以得到通知。

不要再channelhandler里调用await方法

channelhandler里的event handler 方法通常会由一个io线程来调用。如果有await被io线程调用,那么这个io操作可能一直在等待,永远不会完成。

不要混淆io timeout 和await timeout

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值