private static void OnSsdpServerRequested(object sender, Rssdp.Infrastructure.RequestReceivedEventArgs arg)
    {
        string MAN = arg.Message.Headers.GetValues("MAN").First();
        string ST  = arg.Message.Headers.GetValues("ST").First();

        if (arg.Message.Method.ToString().Equals("M-SEARCH") && arg.Message.RequestUri.ToString().Equals("*") && MAN.Equals("\"ssdp:discover\"") &&
            (ST.Equals("urn:sbtvd-org:service:GingaCCWebServices:1") || ST.Equals("ssdp:all")))
        {
            // Get the HTTPU response receiver!
            string[] tmp = arg.ReceivedFrom.ToString().Split(':');

            Action sendHTTPUResponseAssync = () =>
                                             (new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp)).SendTo(HTTPUDefaultResponse, new IPEndPoint(IPAddress.Parse(tmp[0]), Int32.Parse(tmp[1])));

            // Sends the response assyncronously
            Task.Factory.StartNew(sendHTTPUResponseAssync);
        }
    }
Exemplo n.º 2
0
 private void CommsServer_RequestReceived(object sender, RequestReceivedEventArgs e)
 {
     ProcessNotificationMessage(e.Message);
 }
Exemplo n.º 3
0
        private void CommsServer_RequestReceived(object sender, RequestReceivedEventArgs e)
        {
            if (this.IsDisposed) return;

            if (e.Message.Method.Method == SsdpConstants.MSearchMethod)
            {
                //According to SSDP/UPnP spec, ignore message if missing these headers.
                if (!e.Message.Headers.Contains("MX"))
                    WriteTrace("Ignoring search request - missing MX header.");
                else if (!e.Message.Headers.Contains("MAN"))
                    WriteTrace("Ignoring search request - missing MAN header.");
                else
                    ProcessSearchRequest(GetFirstHeaderValue(e.Message.Headers, "MX"), GetFirstHeaderValue(e.Message.Headers, "ST"), e.ReceivedFrom);
            }
        }
Exemplo n.º 4
0
		private void CommsServer_RequestReceived(object sender, RequestReceivedEventArgs e)
		{
			ProcessNotificationMessage(e.Message);
		}