Question

Je suis en train d'écrire un code pour un périphérique UPnP pour annoncer lui-même. Je n'ai aucun intérêt à ce pouvoir découvrir d'autres périphériques UPnP sur le réseau. J'envoie les messages suivants (tirés de 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 

l'appareil ne découvrirez pas (que ce soit sur la victoire 7 page où je vois mes autres périphériques UPnP ou sur le périphérique d'Intel Spy pour UPnP Technologies - voir la mise à jour ). J'ai 2 questions. Tout d'abord, sont tous ces messages nécessaires? et d'autre part, peut-on voir pourquoi mon appareil ne serait pas découvert?

autre info:

mon fichier de description du périphérique 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>

et quelques informations de Wireshark (une vue plongeante sur une liste de cadre msgs)
+ Cadre .....
II + Ethernet, Src: mon appareil , Dst: 239.255.255.250
+ Internet Protocol, Src Port: ssdp (1900), Dst Port: ssdp (1900)
- Protocole HyperText Transfer
... msgs d'en haut sont ici ...

MISE À JOUR: i CAN voir l'appareil sur les services publics UPNP intel. ce fut une erreur d'écriture qui. l'appareil a été exécuté sous un débogueur, et une fois redémarré sans débogueur, il ne découvrir dans les services publics. Je ne peux toujours pas voir sur Windows 7 si? toute pensée?

Était-ce utile?

La solution

Il semble que SERVEUR: est un en-tête nécessaire - au moins un client, je jouais avec ne pas comme les notifications sans serveur:

Autres conseils

Pour une raison folle, j'ai eu plus de chance quand je mis ce champ pour avoir des espaces supplémentaires: CACHE-CONTROL: max-age = 900 \ r \ n

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top