Example #1
0
        /// <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);
            }
        }
Example #2
0
        /// <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());
        }