2017-02-01 4 views
1

J'essaie de créer un programme UPnP MediaServer afin de diffuser la vidéo de mon appareil photo de téléphones à mon PC. J'ai utilisé un espion de périphérique Intel pour envoyer une requête M-SEARCH et utilisé Wireshark pour capturer les paquets réseau.La réponse UPNP M-SEARCH ne génère pas de requête HTTP GET. Pourquoi?

Voici le M-RECHERCHE paquet

(Src: 192.168.1.28, Dst: 239.255.255.250; Src Port: 50852, Dst Port: 1900, time 2.09) 
M-SEARCH * HTTP/1.1 
ST: upnp:rootdevice 
MAN: "ssdp:discover" 
MX: 5 
HOST: 239.255.255.250:1900 

Voici la réponse UDP

(Src: 192.168.1.23, Dst: 192.168.1.28; Src Port: 53359, Dst Port: 50852) 
HTTP/1.1 200 OK 
CACHE-CONTROL: max-age=1810 
DATE: Wed, 1 Feb 2017 02:07:36 GMT 
EXT: 
LOCATION: http://192.168.1.23:49156/details.xml 
SERVER: Linux/2.x.x, UPnP/1.0, pvConnect UPnP SDK/1.0, TwonkyMedia UPnP SDK/1.1 
ST: upnp:rootdevice 
USN: uuid:3d64febc-ae6a-4584-853a-85368ca80800::upnp:rootdevice 
Content-Length: 0 

Je ne reçois pas une suite requête HTTP GET à 192.168.1.23. Je l'ai comparé à d'autres réponses de l'appareil UPNP qui ont fonctionné et ne pouvaient voir aucune différence. J'ai essayé différents ports source mais sans succès. Des idées?

+0

Vous utilisez donc Device Spy pour envoyer une requête M-SEARCH et un périphérique répond. Il n'est pas clair _qui_ vous vous attendez à faire une requête HTTP GET à la description de l'appareil ... – jku

+0

L'en-tête 'Content-Length' de votre réponse n'est pas obligatoire (ou peut-être pas autorisé - les spécifications UPnP sont un peu vagues). Essayez de le supprimer. – simonc

+1

@jku Device Spy effectue normalement une requête GET pour le périphérique xml automatiquement à la réception d'un paquet SSDP valide (à la fois la réponse MSEARCH et NOTIFY) – simonc

Répondre

1

@simonc, merci. J'avais un \ r \ n à la fin de mon message, mais j'en ai ajouté un autre (au message NOTIFY aussi) et maintenant je peux voir mon appareil.