参考【Netty源码:目录】中写的服务端启动代码
具体bind方法在
AbstractBootstrap
中实现的,表示新建一个Channel并且绑定它。删除了些后就这么多,后面围绕这块代码展开说
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//AbstractBootstrap.java
private ChannelFuture doBind(final SocketAddress localAddress) {
//初始化和注册
final ChannelFuture regFuture = initAndRegister();
final Channel channel = regFuture.channel();
if (regFuture.cause() != null) {
return regFuture;
}
if (regFuture.isDone()) {
ChannelPromise promise = channel.newPromise();
doBind0(regFuture, channel, localAddress, promise);
return promise;
} else {
...
}
}
*【4】初始化并且注册一个服务端的Channel
*【13】执行具体绑定端口方法