2

我正在为 UPnP 设备编写代码来宣布自己。我对它能够发现网络上的其他 UPnP 设备不感兴趣。我正在发送以下消息(取自wireshark)

NOTIFY * HTTP/1.1\r\n
NT: upnp:rootdevice\r\n
USN: uuid:0000-1111-2222-3333::upnp:rootdevice\r\n
NTS: ssdp:alive\r\n
LOCATION: http://192.168.40.8:80/rdd2.xml\r\n
HOST: 239.255.255.250:1900\r\n
CACHE-CONTROL: max-age=900\r\n
Content-Length: 0\r\n
\r\n   

NOTIFY * HTTP/1.1\r\n
NT: urn:schemas-upnp-org:device:BinaryLight:1\r\n
USN: uuid:0000-1111-2222-3333::urn:schemas-upnp-org:device:BinaryLight:1\r\n
NTS: ssdp:alive\r\n
LOCATION: http://192.168.40.8:80/rdd2.xml\r\n
HOST: 239.255.255.250:1900\r\n
CACHE-CONTROL: max-age=900\r\n
Content-Length: 0\r\n
\r\n 

NOTIFY * HTTP/1.1\r\n
NT: uuid:0000-1111-2222-3333\r\n
USN: uuid:0000-1111-2222-3333\r\n
NTS: ssdp:alive\r\n
LOCATION: http://192.168.40.8:80/rdd2.xml\r\n
HOST: 239.255.255.250:1900\r\n
CACHE-CONTROL: max-age=900\r\n
Content-Length: 0\r\n
\r\n 

该设备将不会发现(在我看到其他 UPnP 设备的 Win 7 页面上或在英特尔的 UPnP 技术设备间谍上-请参阅更新)。我有 2 个问题。首先,所有这些信息都是必要的吗?其次,谁能看到为什么我的设备不会被发现?

其他信息:

我的 rdd2.xml 设备描述文件

<?xml version="1.0"?>
<root>
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>

<device>
<deviceType>urn:schemas-upnp-org:device:BinaryLight:1</deviceType>
<friendlyName>RFLC</friendlyName>
<manufacturer>Legrand</manufacturer>
<manufacturerURL>http://www.legrand.us/</manufacturerURL>
<modelDescription>Legrand Low Cost RF Lighting Control</modelDescription>
<modelName>X-10L1</modelName>
<modelNumber>L1</modelNumber>
<modelURL>http://www.legrand.us/</modelURL>
<serialNumber>0000001</serialNumber>
<UDN>uuid:0000-1111-2222-3333</UDN>
<UPC>00000-00001</UPC>
<presentationURL>pres.html</presentationURL>
</device>
</root>

以及来自wireshark的一些信息(查看一个消息帧列表)
+帧.....
+以太网II,Src:我的设备,Dst:239.255.255.250
+ Internet协议,Src端口:ssdp(1900),Dst端口: ssdp (1900)
- 超文本传输​​协议
...上面的消息在这里...

更新:我可以在英特尔的 upnp 实用程序上看到该设备那是个错误。该设备在调试器下运行,并且在没有调试器的情况下重新启动后,它会在实用程序中发现。我仍然无法在 Windows 7 上看到它?有什么想法吗?

4

2 回答 2

1

出于某种疯狂的原因,当我将此字段设置为具有额外空格时,我的运气会更好: CACHE-CONTROL: max-age = 900\r\n

于 2010-11-18T16:42:35.593 回答
1

看来 SERVER: 是必需的标头——我玩的至少一个客户端不喜欢没有 SERVER 的通知:

于 2010-11-22T19:06:22.710 回答