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); } }
private void CommsServer_RequestReceived(object sender, RequestReceivedEventArgs e) { ProcessNotificationMessage(e.Message); }
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); } }