Esempio n. 1
0
        public void SendMdnsDiscovery(string name)
        {
            ServiceBrowser serviceBrowser = new ServiceBrowser();

            serviceBrowser.ServiceAdded += OnServiceAdded;
            serviceBrowser.StartBrowse(name);
        }
        ///-------------------------------------------------------------------------------------------------
        /// <summary>
        ///     Starts discovery of Chromecast dongles in local subnet. Subscribe to <c>DeviceDiscovered</c> to
        ///     receive device information.
        /// </summary>
        ///-------------------------------------------------------------------------------------------------
        public override async void Start()
        {
            if (mDnsDiscovery.IsBrowsing)
            {
                return;
            }

            mDnsDiscovery.ServiceAdded   += MDnsDiscovery_ServiceAdded;
            mDnsDiscovery.ServiceChanged += MDnsDiscovery_ServiceChanged;
            mDnsDiscovery.ServiceRemoved += MDnsDiscovery_ServiceRemoved;
            mDnsDiscovery.StartBrowse();

            // Start a timer to delay the SSDP discovery.
            //ssdpShootOffTimer = new Timer((e) =>
            //{
            var ssdpTask = new Task(() =>
            {
                Task.Delay(DiscoveryConstants.SsdpInvocationDelay).Wait();
                if (ssdpCancellation.Token.IsCancellationRequested)
                {
                    Trace.WriteLine("SSDP Cancelled.");
                    return;

                    ssdpCancellation.Token.ThrowIfCancellationRequested();
                }

                Trace.WriteLine("Starting SSDP discovery...");
                ssdpDiscovery.DeviceDiscovered += SsdpDiscovery_DeviceDiscovered;
                ssdpDiscovery.Start();
            }, ssdpCancellation.Token);

            ssdpTask.Start();
            //}, this, DiscoveryConstants.SsdpInvocationDelay, Timeout.InfiniteTimeSpan
            //);
        }
Esempio n. 3
0
        public Task <string> GetValidHostName(string hostName)
        {
            if (hostName.StartsWith("http://"))
            {
                hostName = hostName.Substring(7);
            }
            TaskCompletionSource <string> tcs;

            if (_tcss.TryGetValue(hostName, out tcs))
            {
                return(tcs.Task);
            }
            tcs             = new TaskCompletionSource <string>();
            _tcss[hostName] = tcs;
            var cancellationTokenSource = new CancellationTokenSource(1000);

            cancellationTokenSource.Token.Register(
                () => tcs.TrySetException(new InvalidOperationException("It took too long to resolve " + hostName)));

            ServiceBrowser serviceBrowser = new ServiceBrowser();

            serviceBrowser.ServiceAdded   += OnService;
            serviceBrowser.ServiceRemoved += OnService;
            serviceBrowser.ServiceChanged += OnService;
            serviceBrowser.StartBrowse("_http._tcp", useSynchronizationContext: false);
            return(tcs.Task);
        }
Esempio n. 4
0
        private void FormMDNS_Load(object sender, EventArgs e)
        {
            List <string> serviceTypes = new List <string>();

            serviceTypes.Add("_https._tcp");
            serviceTypes.Add("_http._tcp");

            serviceBrowser.ServiceAdded   += onServiceAdded;
            serviceBrowser.ServiceRemoved += onServiceRemoved;

            serviceBrowser.StartBrowse(serviceTypes);
        }
Esempio n. 5
0
        public DiscoveryManager(UdpManager udpManager)
        {
            _udpManager = udpManager;
            DeviceInfos = new Dictionary <string, DeviceInfo>();

            _serviceBrowser = new ServiceBrowser();
            _serviceBrowser.ServiceAdded   += OnServiceAdded;
            _serviceBrowser.ServiceRemoved += OnServiceRemoved;
            _serviceBrowser.ServiceChanged += OnServiceChanged;

            Debug.WriteLine($"Browsing for type: {ServiceType}");
            _serviceBrowser.StartBrowse(ServiceType);
        }
Esempio n. 6
0
        public MdnsListener(string name, string type)
        {
            Available   = new List <Device>();
            serviceName = name;
            serviceType = type;

            // enable service browser
            serviceBrowser = new ServiceBrowser();
            serviceBrowser.ServiceAdded   += onServiceAdded;
            serviceBrowser.ServiceChanged += onServiceChanged;
            serviceBrowser.ServiceRemoved += onServiceRemoved;
            serviceBrowser.StartBrowse(type);
        }
Esempio n. 7
0
        private void DiscoverHost()
        {
            var id = Thread.CurrentThread.ManagedThreadId;

            var serviceBrowser = new ServiceBrowser();

            serviceBrowser.ServiceAdded += ServiceBrowser_ServiceAdded;
            serviceBrowser.StartBrowse("_ledsrv._tcp", false);
            while (_serviceAnnouncement == null)
            {
                Thread.Sleep(10);
            }
        }
Esempio n. 8
0
        public SetupWindow(MainWindow parent = null)
        {
            _parent = parent;

            InitializeComponent();

            setupViewModel    = new SetupViewModel();
            discoveredDevices = new List <Device>();

            ServiceBrowser serviceBrowser = new ServiceBrowser();

            serviceBrowser.ServiceAdded += onServiceAdded;
            serviceBrowser.StartBrowse("_nanoleafapi._tcp");
        }
Esempio n. 9
0
 /// <summary>
 /// Find the available chromecast receivers
 /// </summary>
 /// <typeparam name="cancellationToken">Enable to cancel the operation before timeout</typeparam>
 /// <typeparam name="timeOut">Define custom timeout when required, default is 2000 ms</typeparam>
 /// <returns>a collection of chromecast receivers</returns>
 public async Task <IEnumerable <ChromecastReceiver> > FindReceiversAsync(CancellationToken cancellationToken)
 {
     if (_serviceBrowser.IsBrowsing)
     {
         _serviceBrowser.StopBrowse();
     }
     _serviceBrowser.StartBrowse("_googlecast._tcp");
     while (!cancellationToken.IsCancellationRequested)
     {
         await Task.Delay(100);
     }
     _serviceBrowser.StopBrowse();
     return(DiscoveredDevices);
 }
Esempio n. 10
0
 private void refresh_mdns_Click(object sender, RoutedEventArgs e)
 {
     new Action(() =>
     {
         node.Log("开始扫描MDNS");
         ServiceBrowser browser         = new ServiceBrowser();
         SynchronizationContext context = new SynchronizationContext();
         browser.StartBrowse("*", context);
         Thread.Sleep(3000);
         browser.StopBrowse();
         node.Log("更新结果");
         Dispatcher.Invoke(() => mdns_result.ItemsSource = browser.Services);
     }).ThreadStart(() => Dispatcher.Invoke(() => refresh_mdns.IsEnabled = false), () => Dispatcher.Invoke(() => refresh_mdns.IsEnabled = true));
 }
Esempio n. 11
0
        public DiscoveryManager(AgentAdded agentAdded)
        {
            ServiceAgents = new List <ServiceAgent>();
            var serviceType = "_ucr._udp";

            _serviceBrowser = new ServiceBrowser();
            _serviceBrowser.ServiceAdded   += OnServiceAdded;
            _serviceBrowser.ServiceRemoved += OnServiceRemoved;
            _serviceBrowser.ServiceChanged += OnServiceChanged;

            Debug.WriteLine($"Browsing for type: {serviceType}");
            _serviceBrowser.StartBrowse(serviceType);

            AgentAddedEvent += agentAdded;
        }
        public CommunicationService()
        {
            // Start searching for Ventilators
            FoundVentilators = new ObservableCollection <Ventilator>();
            StayConnected    = false;

            Debug.WriteLine("Creating new service browser");
            SB = new ServiceBrowser();
            SB.ServiceAdded   += OnServiceAdded;
            SB.ServiceRemoved += OnServiceRemoved;
            string serviceType = "_venttest._tcp";

            Console.WriteLine("Browsing for type: {0}", serviceType);
            SB.StartBrowse(serviceType);
        }
Esempio n. 13
0
        static void Main(string[] args)
        {
            string[]       serviceType    = { "_smartec_v1._tcp", "_http._tcp" };
            ServiceBrowser serviceBrowser = new ServiceBrowser();

            serviceBrowser.ServiceAdded    += onServiceAdded;
            serviceBrowser.ServiceRemoved  += onServiceRemoved;
            serviceBrowser.ServiceChanged  += onServiceChanged;
            serviceBrowser.WatchedAddresses = new List <IPAddress> {
                IPAddress.Parse("192.168.2.2")
            };

            Console.WriteLine("Browsing for type: {0}", serviceType);
            serviceBrowser.StartBrowse(serviceType);
            Console.ReadLine();
        }
Esempio n. 14
0
        /// <summary>
        /// Do a scan on the network.
        /// </summary>
        public void MdnsSearch()
        {
            ServiceBrowser serviceBrowser = new ServiceBrowser();

            serviceBrowser.ServiceAdded   += OnServiceAdded;
            serviceBrowser.ServiceRemoved += OnServiceRemoved;
            serviceBrowser.ServiceChanged += OnServiceChanged;
            serviceBrowser.StartBrowse(serviceType);

            ServiceBrowser serviceBrowserEmbedded = new ServiceBrowser();

            serviceBrowserEmbedded.ServiceAdded   += OnServiceAdded;
            serviceBrowserEmbedded.ServiceRemoved += OnServiceRemoved;
            serviceBrowserEmbedded.ServiceChanged += OnServiceChanged;
            serviceBrowserEmbedded.StartBrowse(serviceTypeEmbedded);
        }
Esempio n. 15
0
        public ServiceDiscovery()
        {
            shellyList = new List <string>();

            serviceBrowser = new ServiceBrowser();
            serviceBrowser.ServiceAdded   += onServiceAdded;
            serviceBrowser.ServiceRemoved += onServiceRemoved;
            serviceBrowser.ServiceChanged += onServiceChanged;

            Console.WriteLine("Starting-Discovery");

            serviceBrowser.StartBrowse(serviceType);

            Console.WriteLine("Stop-Discovery <Press Enter>\r\n");
            Console.ReadLine();
        }
        public void MdnsSearch()
        {
            string         serviceType    = "_googlecast._tcp";
            ServiceBrowser serviceBrowser = new ServiceBrowser();

            serviceBrowser.ServiceAdded   += OnServiceAdded;
            serviceBrowser.ServiceRemoved += OnServiceRemoved;
            serviceBrowser.ServiceChanged += OnServiceChanged;
            serviceBrowser.StartBrowse(serviceType);

            string         serviceTypeEmbedded    = "_googlezone._tcp";
            ServiceBrowser serviceBrowserEmbedded = new ServiceBrowser();

            serviceBrowserEmbedded.ServiceAdded   += OnServiceAdded;
            serviceBrowserEmbedded.ServiceRemoved += OnServiceRemoved;
            serviceBrowserEmbedded.ServiceChanged += OnServiceChanged;
            serviceBrowserEmbedded.StartBrowse(serviceTypeEmbedded);
        }
Esempio n. 17
0
        static void Main(string[] args)
        {
            string serviceType = "_workstation._tcp";

            if (args.Length >= 1)
            {
                serviceType = args[0];
            }

            ServiceBrowser serviceBrowser = new ServiceBrowser();

            serviceBrowser.ServiceAdded   += onServiceAdded;
            serviceBrowser.ServiceRemoved += onServiceRemoved;
            serviceBrowser.ServiceChanged += onServiceChanged;

            Console.WriteLine("Browsing for type: {0}", serviceType);
            serviceBrowser.StartBrowse(serviceType);
            Console.ReadLine();
        }
Esempio n. 18
0
        static void Main(string[] args)
        {
            string serviceType = "_reach._tcp";

            if (args.Length >= 1)
            {
                serviceType = args[0];
            }

            ServiceBrowser serviceBrowser = new ServiceBrowser();

            serviceBrowser.ServiceAdded   += onServiceAdded;
            serviceBrowser.ServiceRemoved += onServiceRemoved;
            serviceBrowser.ServiceChanged += onServiceChanged;

            Console.WriteLine("searching for reach devices... pres Enter to exit");
            serviceBrowser.StartBrowse(serviceType);
            Console.ReadLine();
        }
Esempio n. 19
0
        static void Main(string[] args)
        {
            List <string> serviceTypes = new List <string>();

            serviceTypes.Add("_https._tcp");
            serviceTypes.Add("_http._tcp");

            ServiceBrowser serviceBrowser = new ServiceBrowser();

            serviceBrowser.ServiceAdded   += onServiceAdded;
            serviceBrowser.ServiceRemoved += onServiceRemoved;
            serviceBrowser.ServiceChanged += onServiceChanged;

            Console.WriteLine("Browsing for types: ");
            serviceBrowser.StartBrowse(serviceTypes);
            //Thread.Sleep(10000);
            //serviceBrowser.StopBrowse();
            Console.WriteLine("Stop Browse");
            Console.ReadLine();
        }
Esempio n. 20
0
        /// <summary>
        /// Do a scan on the network.
        /// </summary>
        public void MdnsSearch()
        {
            ServiceBrowser serviceBrowser = new ServiceBrowser();

            serviceBrowser.ServiceAdded   += OnServiceAdded;
            serviceBrowser.ServiceRemoved += OnServiceRemoved;
            serviceBrowser.ServiceChanged += OnServiceChanged;
            serviceBrowser.StartBrowse(serviceType);

            ServiceBrowser serviceBrowserEmbedded = new ServiceBrowser();

            serviceBrowserEmbedded.ServiceAdded   += OnServiceAdded;
            serviceBrowserEmbedded.ServiceRemoved += OnServiceRemoved;
            serviceBrowserEmbedded.ServiceChanged += OnServiceChanged;
            serviceBrowserEmbedded.StartBrowse(serviceTypeEmbedded);

            var mdns = new MulticastService();

            mdns.AnswerReceived += Mdns_AnswerReceived;
            mdns.Start();
        }
Esempio n. 21
0
        public void Advertise()
        {
            mdns = new MulticastService();
            mdns.QueryReceived    += Mdns_QueryReceived;
            mdns.AnswerReceived   += Mdns_AnswerReceived;
            mdns.MalformedMessage += Mdns_MalformedMessage;
            mdns.Start();

            // For future use:
            serviceBrowser = new ServiceBrowser();
            serviceBrowser.ServiceAdded   += OnServiceAdded;
            serviceBrowser.ServiceRemoved += OnServiceRemoved;
            serviceBrowser.ServiceChanged += OnServiceChanged;
            serviceBrowser.StartBrowse(serviceType);

            serviceBrowserEmbedded = new ServiceBrowser();
            serviceBrowserEmbedded.ServiceAdded   += OnServiceAdded;
            serviceBrowserEmbedded.ServiceRemoved += OnServiceRemoved;
            serviceBrowserEmbedded.ServiceChanged += OnServiceChanged;
            serviceBrowserEmbedded.StartBrowse(serviceTypeEmbedded);
        }
        void startmDnsScan()
        {
            message.Text = "Searching for your esprgb devices";
            clearDevices();

            scanTimer           = new System.Timers.Timer();
            scanTimer.Elapsed  += scanTimer_Tick;
            scanTimer.AutoReset = false;
            scanTimer.Interval  = 30000;

            string serviceType = "_esprgb._tcp";

            serviceBrowser = new ServiceBrowser();
            serviceBrowser.ServiceAdded += (object sender, ServiceAnnouncementEventArgs e) =>
            {
                message.Text = "";
                AddNewButtonToList(e.Announcement.Hostname.ToString() + ".local", string.Join(", ", e.Announcement.Addresses));
            };
            serviceBrowser.StartBrowse(serviceType);
            scanTimer.Start();
        }
Esempio n. 23
0
        static void Main(string[] args)
        {
            // Simple packet test:
            // SimplePacketTest simplePacketTest = new SimplePacketTest();

            // mDNS:
            string serviceType = "_workstation._tcp";

            if (args.Length >= 1)
            {
                serviceType = args[0];
            }

            ServiceBrowser serviceBrowser = new ServiceBrowser(5354, "local");

            serviceBrowser.ServiceAdded   += onServiceAdded;
            serviceBrowser.ServiceRemoved += onServiceRemoved;
            serviceBrowser.ServiceChanged += onServiceChanged;

            Console.WriteLine("Browsing for type: {0}", serviceType);
            serviceBrowser.StartBrowse(serviceType);
            Console.ReadLine();
        }
        /// <summary>
        /// Discover all the nanoleaf systems on the network
        /// </summary>
        /// <param name="timeoutInMs">the discover scan timeout</param>
        /// <returns>list of light systems</returns>
        public async Task <IList <ILightSystem> > DiscoverAsync(int timeoutInMs = 5000)
        {
            var systems     = new List <ILightSystem>();
            var systemsLock = new object();
            var discover    = new ServiceBrowser();

            discover.ServiceAdded += (object sender, ServiceAnnouncementEventArgs e) =>
            {
                lock (systemsLock)
                {
                    systems.AddRange(e.Announcement.Addresses
                                     .Select(addr => new IPEndPoint(addr, e.Announcement.Port))
                                     .Select(endpoint => new NanoleafLightSystem(endpoint)));
                }
            };

            discover.StartBrowse(ServiceName);

            await Task.Delay(timeoutInMs);

            discover.StopBrowse();

            return(systems);
        }
Esempio n. 25
0
 public void StartDiscovery()
 {
     serviceBrowser.StartBrowse("_http._tcp");
 }