Объявление UPnP гаснет, но устройство не обнаружено - PullRequest
2 голосов
/ 11 октября 2010

Я пишу код для устройства 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 

устройство не обнаружит (ни на странице Win 7, где я вижу мои другие устройства UPnP , либо на Intel Device Spy для UPnP Technologies - см. Обновление ). у меня есть 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 (просмотр списка кадров одного сообщения)
+ Рамка .....
+ Ethernet II, Src: мое устройство , Dst: 239.255.255.250
+ Интернет-протокол, порт Src: ssdp (1900), порт Dst: ssdp (1900)
- Протокол передачи гипертекста
... сообщения сверху здесь ...

ОБНОВЛЕНИЕ: i CAN см. Устройство в утилитах upnp от intel. это было ошибкой писать это. устройство работало под отладчиком и после перезагрузки без отладчика оно обнаружило в утилитах. я все еще не могу увидеть это на Windows 7, хотя? есть мысли?

Ответы [ 2 ]

1 голос
/ 22 ноября 2010

Похоже, что SERVER: это обязательный заголовок - по крайней мере один клиент, с которым я играл, не любил уведомления без SERVER:

1 голос
/ 18 ноября 2010

По какой-то сумасшедшей причине мне повезло больше, когда я установил в этом поле дополнительные пробелы: CACHE-CONTROL: max-age = 900 \ r \ n

...