static bool IsTestAnnouncement(SsdpMessage msg) { return(msg.IsService && msg.Type == "urn:schemas-upnp-org:service:test:1" && msg.USN == "uuid:979F4CE8-64AF-4653-B207-D7514908356F::urn:schemas-upnp-org:service:test:1"); }
static void Main(string[] args) { using (var server = new SsdpServer()) { server.StartListening(); var announcer = server.CreateAnnouncer(); announcer.Location = "http://localhost/test"; announcer.NotificationType = "test"; announcer.MaxAge = 3; announcer.Start(); SsdpClient client = new SsdpClient(); using (var search = client.CreateSearch(true)) { search.SearchType = "upnp:rootdevice"; Console.WriteLine("Searching for first result:"); SsdpMessage first = search.FindFirst(Protocol.DiscoveryEndpoints.IPv4, Protocol.DiscoveryEndpoints.Broadcast); if (first == null) { Console.WriteLine("No results found from FindFirst."); } else { Console.WriteLine("First device found at: {0}", first.Location); } } using (var search = client.CreateSearch(true)) { search.SearchType = Protocol.SsdpAll; // Attach our events for async search search.ResultFound += new EventHandler <EventArgs <SsdpMessage> >(search_ResultFound); search.SearchComplete += new EventHandler(search_SearchComplete); Console.WriteLine(); Console.WriteLine("Performing asynchronous search:"); //search.SearchAsync(); search.SearchAsync(Protocol.DiscoveryEndpoints.IPv4, Protocol.DiscoveryEndpoints.Broadcast); // Wait for our async search to complete before doing the synchronous search search.WaitForSearch(); } using (var search = client.CreateSearch(true)) { search.SearchType = "upnp:rootdevice"; Console.WriteLine(); Console.WriteLine("Performing synchronous search:"); search.Search(Protocol.DiscoveryEndpoints.IPv4, Protocol.DiscoveryEndpoints.Broadcast).ForEach(msg => { Console.WriteLine(msg.Location); }); } Console.ReadLine(); } }
static bool IsRootAnnouncement(SsdpMessage msg) { return(msg.IsRoot && msg.Type == "upnp:rootdevice" && msg.USN == "uuid:979F4CE8-64AF-4653-B207-D7514908356F::upnp:rootdevice"); }