Connect 主线程过程:
1 -NioSocketConnector 调用connect()方法,来连接远程端口。NioSocketConnector(AbstractIoConnector).connect(SocketAddress)。
2 -通过NioSocketConnector.newHandle(SocketAddress) 方法创建一个SocketChannel 对象。 并通过socket.setReceiveBufferSize()方法设置SO_RCVBUF的参数。
最大参数为:65535
3 -创建ConnectionRequest 对象。并加入到Queue<ConnectionRequest> connectQueue = new ConcurrentLinkedQueue<ConnectionRequest>() 队列中。
同时启动Connector 线程。其中connect事件的超时时间为1分钟。 private long connectTimeoutInMillis = 60 * 1000L; // 1 minute by default
public final class ConnectionRequest extends DefaultConnectFuture {
private final H handle;
//Connect超时时间(毫秒单位)
private final long deadline;
private final IoSessionInitializer<? extends ConnectFuture> sessionInitializer;
}
4 -connect事件返回ConnectFuture 对象,作为返回结果。调用ConnectFuture.awaitUninterrupt