Пример #1
0
 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");
 }
Пример #2
0
        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();
            }
        }
Пример #3
0
 static bool IsRootAnnouncement(SsdpMessage msg)
 {
     return(msg.IsRoot &&
            msg.Type == "upnp:rootdevice" &&
            msg.USN == "uuid:979F4CE8-64AF-4653-B207-D7514908356F::upnp:rootdevice");
 }