/// <summary> /// Listen for incoming UDP packets on all allowed local IP's on default port. /// </summary> /// <param name="useRandomPortFailOver">If true and the default local port is not available will select one at random. If false and a port is unavailable listening will not be enabled on that adaptor unless NetworkComms.ListenOnAllAllowedInterfaces is false in which case a <see cref="CommsSetupShutdownException"/> will be thrown instead.</param> public static void StartListening(bool useRandomPortFailOver = false) { List <IPAddress> localIPs = NetworkComms.AllAllowedIPs(); if (NetworkComms.ListenOnAllAllowedInterfaces) { try { foreach (IPAddress ip in localIPs) { try { StartListening(new IPEndPoint(ip, NetworkComms.DefaultListenPort), useRandomPortFailOver); } catch (CommsSetupShutdownException) { } } } catch (Exception) { //If there is an exception here we remove any added listeners and then rethrow Shutdown(); throw; } } else { StartListening(new IPEndPoint(localIPs[0], NetworkComms.DefaultListenPort), useRandomPortFailOver); } }