code: public void connect() throws Exception {
  		disconnect();
  
  		String udpMulticast = transporter.getUdpMulticast();
  		boolean udpBroadcast = transporter.isUdpBroadcast();
  
  		if (udpMulticast != null || udpBroadcast) {
  			String bindAddress = transporter.getUdpBindAddress();
  			synchronized (receivers) {
  				if (bindAddress != null && !bindAddress.isEmpty()) {
  
  					// Create receiver for a NetworkInterface
  					InetAddress address = InetAddress.getByName(bindAddress);
  					startReceivers(NetworkInterface.getByInetAddress(address), udpMulticast, udpBroadcast);
  				} else {
  
  					// Create receivers for all NetworkInterfaces
  					Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces();
  					while (en.hasMoreElements()) {
  						startReceivers(en.nextElement(), udpMulticast, udpBroadcast);
  					}
  				}
  				if (!receivers.isEmpty()) {
  
  					// Start broadcast receivers
  					for (UDPReceiver receiver : receivers) {
  						receiver.connect();
  					}
  
  					// Start multicast / broadcast sender
  					timer = scheduler.scheduleAtFixedRate(this::send, 1, transporter.getUdpPeriod(), TimeUnit.SECONDS);
  				}
  			}
  		}
  	}
docs: --- CONNECT ---