/// <summary> /// This method is invoked to query a new/unknown media server /// </summary> /// <param name="data">data, which must be of type AdvertisedServiceInfo</param> private void QueryNewServer(object data) { Thread.CurrentThread.Name = "QMS Query New Server"; AdvertisedServiceInfo servInfo = (AdvertisedServiceInfo)data; string serverAddress = servInfo.IP.ToString(); try { ServerInfo serverInfo = FetchServerInfo(serverAddress); if (serverInfo == null) { return; } // The server name originating from the NetManager advertisement overrides the value // coming from the MediaServer (which comes from Dns.GetHostName()) if (servInfo.Name != null) { serverInfo.ServerName = servInfo.Name; } if ((serverInfo.StreamSources.Count > 0) || (serverInfo.OriginServers != null) && (IsServerKnown(serverAddress) != DiscoveryMechanism.AXServices)) { lock (_mediaServerListLock) { this.MediaServers.Add(serverAddress, serverInfo); } FireServerNowAvailable(serverAddress); } } catch (Exception exc) { Debug.WriteLine("Failed QueryNewServer (" + serverAddress + ") - " + exc.Message); } }
/// <summary> /// Prints out the results of querying a service /// </summary> /// <param name="info">AdvertisedServiceInfo used to reach the server in question</param> public static void PrintQueryService(AdvertisedServiceInfo info) { Console.WriteLine(String.Format(" > Trying {0} {1}...", info.Name, info.IP.ToString())); DoGetService(info.IP.ToString()); }