0
我要发送的MSearch请求我的DLNA服务器,并使用Javascript获得响应。我已经在C#中实现了这些代码,但是我在写一个Chrome加载项(Html,JS,CSS)后,我在JavaScript中需要它。 问题是我不知道Js,我已经阅读了Node.js文档,但无法理解它。广播消息,并使用Javascript获取响应(UPnP的M-SEARCH)
这是我的C#代码
public void search()
{
IPEndPoint LocalEndPoint = new IPEndPoint(IPAddress.Any, 6000); to 1900 to
IPEndPoint MulticastEndPoint = new IPEndPoint(IPAddress.Parse("239.255.255.250"), 1900);
Socket UdpSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
UdpSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
UdpSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, true);
UdpSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.MulticastTimeToLive, 2);
UdpSocket.Bind(LocalEndPoint);
UdpSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(IPAddress.Parse("239.255.255.250"), LocalEndPoint.Address));
Console.WriteLine("UDP-Socket setup done...\r\n");
string SearchString = "M-SEARCH * HTTP/1.1\r\nHOST:239.255.255.250:1900\r\nMAN:\"ssdp:discover\"\r\nST:urn:schemas-upnp-org:device:MediaServer:1 \r\nMX:3\r\n\r\n"; //Wifi router connectify: => ST:urn:schemas-upnp-org:device:WANConnectionDevice:1
UdpSocket.SendTo(Encoding.UTF8.GetBytes(SearchString), SocketFlags.None, MulticastEndPoint); // ==> HTTPMU broadcast
UdpSocket.SendTo(Encoding.UTF8.GetBytes(SearchString), SocketFlags.None, MulticastEndPoint);
UdpSocket.SendTo(Encoding.UTF8.GetBytes(SearchString), SocketFlags.None, MulticastEndPoint);
Console.WriteLine("M-Search sent...\r\n");
byte[] ReceiveBuffer = new byte[64000];
int ReceivedBytes = 0;
while (true)
{
if (UdpSocket.Available > 0)
{
ReceivedBytes = UdpSocket.Receive(ReceiveBuffer, SocketFlags.None);
if (ReceivedBytes > 0)
{
string responseString = Encoding.UTF8.GetString(ReceiveBuffer, 0, ReceivedBytes);
if (!responseString.Contains("Windows/6.8 UPnP/1.1 Guru")) continue;
string url = GetResourceUriFromHTTPResp(responseString);
if (!string.IsNullOrEmpty(url))
{
Console.WriteLine(url);
UdpSocket.Close();
break;
}
}
}
}
}
我的主要目标是获取服务器的URL,当用户点击插件,浏览到的URL。
如果我唯一的选择是使用外部JavaScript库像Node.js的,请给我解释一下简单的语言如何有refrence图书馆,使我能够使用它的功能。