Exemple #1
0
        public void SendMdnsDiscovery(string name)
        {
            ServiceBrowser serviceBrowser = new ServiceBrowser();

            serviceBrowser.ServiceAdded += OnServiceAdded;
            serviceBrowser.StartBrowse(name);
        }
        public ProPresenterDataAgent(IConfigManager configManager, ILogger logger)
        {
            _instances = new List <ProPresenterInstance>();

            _serviceBrowser = new ServiceBrowser();

            _serviceBrowser.ServiceAdded   += OnServiceAdded;
            _serviceBrowser.ServiceRemoved += OnServiceRemoved;

            _logger = logger;
            try
            {
                _password = configManager.GetConfig(ConfigKeys.ProPresenterPassword);
            }
            catch (Exception e)
            {
                _password = "";
                _logger.LogError("Error reading configuration file", e);

                configManager.EditConfig(ConfigKeys.ProPresenterPassword, _password);
                configManager.SaveConfig();
            }

            Connected     = false;
            Connecting    = false;
            StopListening = false;
        }
Exemple #3
0
        protected virtual void Dispose(bool disposing)

        {
            if (disposing)

            {
                try

                {
                    Stop();

                    if (this.serviceBrowser != null)

                    {
                        this.serviceBrowser.ServiceAdded -= new ServiceBrowseEventHandler(serviceBrowser_ServiceAdded);

                        this.serviceBrowser.ServiceRemoved -= new ServiceBrowseEventHandler(serviceBrowser_ServiceRemoved);

                        this.serviceBrowser.Dispose();

                        this.serviceBrowser = null;
                    }
                }

                catch

                {
                    // suppress
                }
            }
        }
        public void Stop()
        {
            if (dnsSD != null)
            {
                dnsSD.Dispose();
                dnsSD = null;
            }

            if (slpUser != null)
            {
                slpUser.Close();
                slpUser = null;
            }

            if (acnSocket != null)
            {
                acnSocket.Close();
                acnSocket = null;
            }

            if (reliableSocket != null)
            {
                reliableSocket.Dispose();
                reliableSocket = null;
            }
        }
        public void Start()
        {
            if (acnSocket == null || !acnSocket.PortOpen)
            {
                acnSocket = new RdmNetSocket(UId.NewUId(0xFF), Guid.NewGuid(), "RDM Snoop");
                acnSocket.NewRdmPacket += acnSocket_NewRdmPacket;
                acnSocket.Open(new IPEndPoint(LocalAdapter, 0));
            }

#if SLP_Discovery
            slpUser = new SlpUserAgent("ACN-DEFAULT");
            slpUser.NetworkAdapter = localAdapter;
            slpUser.ServiceFound  += new EventHandler <ServiceFoundEventArgs>(slpUser_ServiceFound);


            slpUser.Open();
            slpUser.Find("service:rdmnet-device");
#endif

#if mDNS_Discovery
            dnsSD = new ServiceBrowser();
            dnsSD.ServiceAdded += dnsSD_ServiceAdded;
            dnsSD.Browse("_rdmnet._udp", "local");
#endif
        }
Exemple #6
0
 private void Browse()
 {
     browser = new ServiceBrowser();
     browser.ServiceAdded   += OnServiceAdded;
     browser.ServiceRemoved += OnServiceRemoved;
     browser.Browse(0, AddressProtocol.Any, RAOP_MDNS_TYPE, "local");
 }
Exemple #7
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);
        }
Exemple #8
0
        /// <summary>
        /// Starts the service browser that monitors for other Bonjour services.
        /// </summary>
        public void Start()
        {
            if (isSupported && !this.isStarted)
            {
                try
                {
                    this.serviceBrowser = new ServiceBrowser();
                    this.serviceBrowser.ServiceAdded   += new ServiceBrowseEventHandler(serviceBrowser_ServiceAdded);
                    this.serviceBrowser.ServiceRemoved += new ServiceBrowseEventHandler(serviceBrowser_ServiceRemoved);

                    // BUG WORKAROUND: The ZeroConf library has a bug in it where AddressProtocol.Any eventually
                    // tries to do something with an IPv6 request and the call never returns. In practice, this causes
                    // the detection of service removals to never be triggered. As a temporary fix, we have to
                    // explicitly specify IPv4 for now.
                    this.serviceBrowser.Browse(AddressProtocol.IPv4, Growl.Daemon.GrowlServer.BONJOUR_SERVICE_TYPE, null);

                    this.isStarted = true;
                }
                catch (Exception ex)
                {
                    Utility.WriteDebugInfo(String.Format("Bonjour service browser not started - {0}", ex.Message));
                    isStarted = false;
                }
            }
        }
        public CanDiscoveryService(string mDnsService, string mDnsDomain)
        {
            _cans = new List <Can>();
            // _cans.Add(new Can("skynet.io", "skynet.io"));

            try
            {
                _browser = new ServiceBrowser();
                _browser.ServiceAdded += ServiceAdded;

                _subject = new Subject <IEnumerable <Can> >();
                var conn = _subject.Replay(1);
                conn.Connect();
                Cans = conn;

                _browser.Browse(0,
                                AddressProtocol.Any,
                                mDnsService,
                                mDnsDomain);
            }
            catch (Exception ex)
            {
                Cans = Observable.Throw <IEnumerable <Can> >(ex);
            }
        }
Exemple #10
0
        public async void Stop()
        {
            if (mServer == null)
            {
                throw new InvalidOperationException();
            }
            timer.Change(Timeout.Infinite, Timeout.Infinite);
            var closeTask = mServer.CloseAsync();

            mServer = null;
            mConfig = null;
            try
            {
                serviceRegister.Dispose();
            }
            catch { }
            serviceRegister = null;
            try
            {
                sb.Dispose();
            }
            catch { }
            sb = null;
            await closeTask;

            lock (knownHosts) knownHosts.Clear();
        }
Exemple #11
0
        public void  Stop()
        {
            if (reliableSocket != null)
            {
                reliableSocket.Dispose();
                reliableSocket = null;
            }

            if (slpUser != null)
            {
                slpUser.Dispose();
                slpUser = null;
            }

#if mDNS_Discovery
            if (dnsSD != null)
            {
                dnsSD.Dispose();
                dnsSD = null;
            }
#endif

            if (rdmNetSocket != null)
            {
                rdmNetSocket.Close();
                rdmNetSocket = null;
            }
        }
Exemple #12
0
        /// <summary>
        /// Starts a discovery process
        /// </summary>
        public void Find(DiscoveryType type = DiscoveryType.WsDiscovery)
        {
            ActivityServices.Clear();
#if !ANDROID
            switch (type)
            {
            case DiscoveryType.WsDiscovery:
                using (var wsBrowser = new DiscoveryClient(new UdpDiscoveryEndpoint()))
                {
                    wsBrowser.FindProgressChanged += WsBrowserFindProgressChanged;
                    wsBrowser.FindCompleted       += WsBrowserFindCompleted;
                    wsBrowser.FindAsync(new FindCriteria(typeof(IDiscovery)));
                }
                break;

            case DiscoveryType.Zeroconf:
            {
                var zcBrowser = new ServiceBrowser();
                zcBrowser.ServiceAdded += zcBrowser_ServiceAdded;
                zcBrowser.Browse("_am._tcp", "local");
            }
            break;
            }
#else
            Probe();
#endif
        }
        protected override void Initialize()
        {
            browser = new ServiceBrowser();
            browser.ServiceAdded += delegate(object o, ServiceBrowseEventArgs args)
            {
                Console.WriteLine("Found Service: {0}", args.Service.Name);
                args.Service.Resolved += delegate(object o2, ServiceResolvedEventArgs args2)
                {
                    lock (resolveLock)
                    {
                        IResolvableService s = (IResolvableService)args2.Service;

                        ServiceLocation loc = new ServiceLocation(s.HostEntry.AddressList[0], s.Port, s.FullName);
                        Logger.Info("A new ethernet interface was found");
                        SmartScopeInterfaceEthernet ethif = new SmartScopeInterfaceEthernet(loc.ip, loc.port, OnInterfaceDisconnect);
                        if (ethif.Connected)
                        {
                            createdInterfaces.Add(loc, ethif);
                            if (onConnect != null)
                            {
                                onConnect(ethif, true);
                            }
                        }
                        else
                        {
                            Logger.Info("... but could not connect to ethernet interface");
                        }
                    }
                };
                args.Service.Resolve();
            };

            browser.Browse(Net.Net.SERVICE_TYPE, Net.Net.REPLY_DOMAIN);
        }
        //
        // Configure the code that will be called back when the information
        // becomes available
        //

        public void Start()
        {
            browser = new ServiceBrowser();

            browser.ServiceAdded   += OnServiceAdded;
            browser.ServiceRemoved += OnServiceRemoved;

            browser.Browse("_dpap._tcp", "local");
        }
    private static void OnServiceTypeAdded(object o, ServiceTypeInfoArgs args)
    {
        Console.WriteLine("Got service type: " + args.ServiceType.ServiceType);
        ServiceBrowser sb = new ServiceBrowser(client, args.ServiceType.ServiceType, args.ServiceType.Domain);

        objects.Add(sb);

        sb.ServiceAdded += OnServiceAdded;
    }
 public void Stop()
 {
     if (browser != null)
     {
         browser.Dispose();
         browser = null;
     }
     services.Clear();
 }
        public void Dispose()
        {
            if (browser == null)
            {
                return;
            }

            browser.Dispose();
            browser = null;
        }
Exemple #18
0
 public void Start()
 {
     try {
         sb = new ServiceBrowser(client, "_ldap._tcp");
         sb.ServiceAdded   += OnServiceAdded;
         sb.ServiceRemoved += OnServiceRemoved;
     } catch (Exception e) {
         Log.Debug(e);
     }
 }
 public void BrowseServices()
 {
     if (browser == null)
     {
         browser = new ServiceBrowser();
         browser.ServiceAdded   += new ServiceBrowseEventHandler(browser_ServiceAdded);
         browser.ServiceRemoved += new ServiceBrowseEventHandler(browser_ServiceRemoved);
         browser.Browse(0, AddressProtocol.Any, ZEROCONF_NAME, "local");
     }
 }
Exemple #20
0
 public void Stop()
 {
     if (browser != null)
     {
         lock (locker) {
             services.Clear();
         }
         browser.Dispose();
         browser = null;
     }
 }
Exemple #21
0
        private void OnNetworkStateChanged(object o, NetworkStateChangedArgs args)
        {
            if (!args.Connected)
            {
                browser.Dispose();
                browser = null;
                return;
            }

            Browse();
        }
        public void Start()
        {
            if (browser != null)
            {
                Stop();
            }

            browser = new ServiceBrowser();
            browser.ServiceAdded   += OnServiceAdded;
            browser.ServiceRemoved += OnServiceRemoved;
            browser.Browse("_daap._tcp", null);
        }
Exemple #23
0
        public void Start()
        {
            if (browser == null)
            {
                browser = new ServiceBrowser();

                browser.ServiceAdded   += OnServiceAdded;
                browser.ServiceRemoved += OnServiceRemoved;

                browser.Browse("_giver._tcp", "local");
            }
        }
Exemple #24
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);
        }
Exemple #25
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);
            }
        }
Exemple #26
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);
        }
Exemple #27
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));
 }
Exemple #28
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");
        }
Exemple #29
0
 /// <summary>
 /// Stops monitoring for other Bonjour services.
 /// </summary>
 public void Stop()
 {
     if (this.isStarted)
     {
         if (this.serviceBrowser != null)
         {
             this.serviceBrowser.ServiceAdded   -= serviceBrowser_ServiceAdded;
             this.serviceBrowser.ServiceRemoved -= serviceBrowser_ServiceRemoved;
             this.serviceBrowser.Dispose();
             this.serviceBrowser = null;
         }
         this.isStarted = false;
     }
 }
        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;
        }