我是SSDP/UPNP/Sockets和所有爵士樂的新手。我正在玩這個遊戲,我只想看看在我的網絡上會發現一個普通的SSDP搜索。Windows Phone 8中的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從不被觸發。 – earthling