这个类是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