2010-10-11 2 views
2

Я пишу код для устройства UPnP, чтобы объявить о себе. я не заинтересован в том, чтобы он мог обнаружить другие устройства UPnP в сети. я посылаю следующие сообщения (взятые из Wireshark)Объявление UPnP выходит, но устройство не обнаружено

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

UPDATE: я CAN увидеть устройство на UPNP утилит Intel. это было ошибкой. устройство было запущено под отладчиком, и после перезагрузки без отладчика он обнаружил в утилитах. Я все еще не вижу его в Windows 7, хотя? Есть предположения?

+1

Вы сравнивали данные, полученные через wirehark для устройств, которые _do_ обнаруживаются? –

+0

ах, да, хороший момент, я забыл упомянуть об этом. Я ИМЕЮ, и единственное, что я вижу, - это материал, который должен быть другим (т. е. uuid, location и т. д.). – trh178

ответ

1

Представляется, что сервер: это требуется заголовок - - по крайней мере один клиент, с которым я играл, не любил уведомления без СЕРВЕР:

+0

'SERVER:' требуется и должен содержать 'UPnP/1.x', например. 1.0 или 1.1 для этого объявления 'ssdp', которое будет распознано как' upnp'. –

1

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

Смежные вопросы