code: public void start() throws Throwable {
  		Preconditions.checkState(serverAddress == null && serverShutdownFuture.get() == null,
  				serverName + " is already running @ " + serverAddress + ". ");
  
  		Iterator<Integer> portIterator = bindPortRange.iterator();
  		while (portIterator.hasNext() && !attemptToBind(portIterator.next())) {}
  
  		if (serverAddress != null) {
  			log.info("Started {} @ {}.", serverName, serverAddress);
  		} else {
  			log.info("Unable to start {}. All ports in provided range ({}) are occupied.", serverName, bindPortRange);
  			throw new FlinkRuntimeException("Unable to start " + serverName + ". All ports in provided range are occupied.");
  		}
  	}
docs: Starts the server by binding to the configured bind address (blocking).
  @throws Exception If something goes wrong during the bind operation.