@Override
    protected boolean doStart() throws InterruptedException {
        for (UserProcessor<?> userProcessor : userProcessors.values()) {
            if (!userProcessor.isStarted()) {
                userProcessor.startup();
            }
        }

        this.channelFuture = this.bootstrap.bind(new InetSocketAddress(ip(), port())).sync();
        if (port() == 0 && channelFuture.isSuccess()) {
            InetSocketAddress localAddress = (InetSocketAddress) channelFuture.channel()
                .localAddress();
            setLocalBindingPort(localAddress.getPort());
            logger.info("rpc server start with random port: {}!", port());
        }
        return this.channelFuture.isSuccess();
    }
create connection operation<br>
<ul>
<li>If flag manageConnection be true, use {@link DefaultConnectionManager} to add a new connection, meanwhile bind it with the channel.</li>
<li>If flag manageConnection be false, just create a new connection and bind it with the channel.</li>
</ul>
src/main/java/com/alipay/remoting/rpc/RpcServer.java