Unsafe的bind方法将channel绑定到指定的端口,绑定成功后触发ChannelActive事件,添加到channel的pipeline的handler接收到通知后进行相应的处理。整体流程如下:

具体的源码如下:

ChannelPromise.setUncancellable

将Promise的结果设置为UNCANCELLABLE。
ensureOpen

确保channel此时已经打开。
doBind

javaChannel()方法返回的是java原生的channel,调用其bind方法绑定端口。
fireChannelActive

当channel绑定端口成功后注册ChannelActive事件,也就是提交到EventLoop中等待执行。
ChannelPromise.trySuccess

将channel的Promise设置为SUCCESS状态。
版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: