【发布时间】:2013-09-16 18:33:19
【问题描述】:
我是 SSDP/UPNP/Sockets 和所有爵士乐的新手。我正在玩弄它,我只是想看看我网络上的通用 SSDP 搜索会带来什么。
使用这个SSDP Sniffer 应用程序,我得到了很多结果,所以我正在尝试重新创建它。
我正在使用以下代码,我找到了各种版本,但我所做的所有调整似乎都没有带来任何结果。我在这里几乎不知所措,希望得到任何指导。
谢谢!
private const string SSDP_IP = "239.255.255.250";
private const string SSDP_PORT = "1900";
private const string SSDP_QUERY = "M-SEARCH * HTTP/1.1\r\n" +
"Host: " + SSDP_IP + ":" + SSDP_PORT + "\r\n" +
"Man: ssdp:discover\r\n" +
"ST: ssdp:all\r\n";
DataGramSocket socket;
async public void SsdpQueryAsync()
{
var remoteIP = new Windows.Networking.HostName(SSDP_IP);
var reqBuff = Encoding.UTF8.GetBytes(SSDP_QUERY);
socket = new DatagramSocket();
socket.MessageReceived += (sender, args) =>
{
// This is invoked for each device that responds to the query...
Task.Run(() =>
{
// do something useful
});
};
await socket.BindEndpointAsync(null, "");
socket.JoinMulticastGroup(remoteIP);
using (var stream = await socket.GetOutputStreamAsync(remoteIP, SSDP_PORT))
{
await stream.WriteAsync(reqBuff.AsBuffer());
}
await Task.Delay(5000);
}
【问题讨论】:
-
“似乎没有带来任何结果”是什么意思?你有错误吗?并返回空缓冲区?还有什么?
-
没有收到任何消息,因此 socket.MessageReceived 永远不会被触发。
标签: c# .net windows-phone-8 upnp ssdp