第一部分启动服务器,1)将其绑定在TCP端口上,2)等待服务器准备就绪(套接字正在监听)3)并返回关联的通道。
serverBootstrap.bind(tcpPort).sync().channel(); (1)(2) (3)
第二部分是等待主通道(侦听套接字)关闭(
closeFuture().sync()),在此关闭状态
closeFuture将为您提供“关闭”操作的“未来”(意味着关闭服务器套接字),并
sync等待将来完成该操作。
channel()为您提供与第一次完全相同的频道,但现在已关闭。
因此,您可能会在各种示例中找到此代码,因为通常情况下,您是在主线程中启动服务器(绑定),然后,如果不等待,主线程将结束,从而使JVM完成工作,因此您的服务器在启动后立即停止。
因此,总的来说,我们要做的是:
- 启动服务器
- 在管道中添加必要的处理程序以处理您的业务逻辑(当然还有网络协议)
- 然后通过等待closeFuture来完成您的主线程,这样,一旦在您的业务逻辑中获得了要关闭的命令,就关闭了主通道,因此主线程也正在关闭。



