code: public void startSearch(int localPort, NetworkInterface ni, int timeout, boolean wait)
  		throws KNXException
  	{
  		if (timeout < 0)
  			throw new KNXIllegalArgumentException("timeout has to be >= 0");
  		if (localPort < 0 || localPort > 65535)
  			throw new KNXIllegalArgumentException("port out of range [0..0xFFFF]");
  		final Receiver r = search(new InetSocketAddress(host, localPort), ni, timeout);
  		if (wait)
  			join(r);
  	}
docs: Starts a new discovery, the <code>localPort</code> and network interface can be
  specified.
  <p>
  The search will continue for <code>timeout</code> seconds, or infinite if timeout
  value is zero. During this time, search responses will get collected asynchronous
  in the background by this {@link Discoverer}.<br>
  With <code>wait</code> you can force this method into blocking mode to wait until
  the search finished, otherwise the method returns with the search running in the
  background.<br>
  A search is finished if either the <code>timeout</code> was reached or the
  background receiver stopped.<br>
  The reason the <code>localPort</code> parameter is specified here, in addition to
  the port queried at {@link #Discoverer(int, boolean)}, is to distinguish between
  search responses if more searches are running concurrently.<br>
  
  @param localPort the port used to bind the socket, a valid port is 0 to 65535, if
  localPort is zero an arbitrary unused (ephemeral) port is picked
  @param ni the {@link NetworkInterface} used for sending outgoing multicast
  messages, or <code>null</code> to use the default multicast interface
  @param timeout time window in seconds during which search response messages will
  get collected, timeout >= 0. If timeout is zero, no timeout is set, the
  search has to be stopped with {@link #stopSearch()}.
  @param wait <code>true</code> to block until end of search before return
  @throws KNXException on network I/O error
  @see MulticastSocket
  @see NetworkInterface