/// <summary> /// Creates a venue with IPAddress 234.*.*.* where each * is randomly generated. Extremely useful /// in the case where a venue server is inaccessible. /// </summary> public Venue CreateRandomMulticastVenue( string name, Image icon ) { IPEndPoint endPoint = null; bool trafficInVenue = true; while (trafficInVenue) { #region Randomly choose the Venue's IP address Random rnd = new Random(); int randomaddr = 234; randomaddr = randomaddr * 256 + rnd.Next(1, 2^8 - 1); randomaddr = randomaddr * 256 + rnd.Next(1, 2^8 - 1); randomaddr = randomaddr * 256 + rnd.Next(1, 2^8 - 1); endPoint = new IPEndPoint(IPAddress.HostToNetworkOrder(randomaddr), 5004); #endregion #region Detect whether there is already traffic in the venue, if so change the IP address BufferChunk bc = new BufferChunk(MSR.LST.Net.Rtp.Rtp.MAX_PACKET_SIZE); UdpListener udpListener = new UdpListener(endPoint, venueInUseTimeout); try { udpListener.Receive(bc); } catch (System.Net.Sockets.SocketException e) { if (e.ErrorCode == 10060) { trafficInVenue = false; } else { throw; } } finally { udpListener.Dispose(); } #endregion } VenueData venueData = new VenueData( name, endPoint, 5, VenueType.Custom, icon ); return AddCustomVenue(venueData); }