Einzelnen Beitrag anzeigen

Benutzerbild von TERWI
TERWI

Registriert seit: 29. Mär 2008
Ort: D-49626
381 Beiträge
 
Delphi 11 Alexandria
 
#26

AW: instanz des eigenen Programms im Netzwerk finden?

  Alt 7. Mär 2016, 14:45
Moin Marco !

Ich hab das WS-Discovery nach 100x lesen, verstehen und probieren jetzt (hoffentlich) "geblickt" und bin da jetzt mit meinem IP-Kamera-Gerümpel min. 3 Schritt weiter !
Funktioniert hier soweit mit meinen mitlerweile 10 CAMs (8x LAN, 2x WLAN/LAN) soweit recht propper.

Es gibt die Messages "HELLO" und "BYE", welche von einem Server/Proxy gesendet werden können, um deren Bereitschaft & Ende zu signalisieren.
Meine CAMs hier senden (nicht alle !) ein "Hello" nach dem aktivieren.
Ein "BYE" gibt (noch) keine von sich - das kann aber ein entsprechendes Proggie schon.

Dazu MUSS man allerdings via MULTICAST lauschen - NICHT via UDP !

Das "Hello" ist allerdings nicht mehr als ein Indiz - nicht jede CAM sendet hier komplette Daten wie in der REFERENZ beschrieben.
Man bekommt jedoch wenigstens eine IP, die man dann auf irgendeine Weise anpingen kann ...

Eine "PROBE" (oder auch "RESOLVE") vom CLienten via UDP versendet ist da schon praktischer.
Dazu muss man seinen Absendeport kennen/bestimmen, eine eindeutige UUID senden, sowie den "Typ" des angefragten Gerätes angeben. Hier für IP-Cams: "NetworkVideoTransmitter".

Dann antwortet jedes Gerät i.d.R. auch sehr zügig mit einem "PROBEMATCH" (oder "RESOLVEMATCH") und gibt ca. 2 Hände voll nützliche Werte zurück.
.... manchmal auch doppelt und 3-fach - das muss man schon ausfiltern ! Ist aber nicht wirklich schwierig ...

Wie bei HELLO geht und kommt das alles logo in (SOAP) XML zurück.
Da ich mich mit diesem "KRAM" noch nie beschäftigt hatte und auch nicht tonnenweise Packages u.a. einfügen will, hab ich kurzerhand nach kurzer Lernphase selbst was gebastelt, was in Kenntnis der Datenstruktur (XML-Konform) alle wichtigen Werte mit nur wenigen Zeilen universell extrahiert. (Bin ich sehr stolz drauf !)

Dabei herausgekommen ist eine Klasse, welche sowohl für Server & Clienten anwendbar ist und Daten nach STANDARD versendet.

Für Marco (u. a. ?!) sicher interessant:
Mit einer (kleinen) entsprechenden Anwendung unter Zuhilfename der Klasse spielt hier mein Schläppi und der PC meiner Frau jeweils eine simulierte Kamera.
Es wird "guten Tag" (HELLO) gesagt beim booten und auch "Tschüss" (BYE) beim runterfahren/Programm beenden.

Ein bischen Code gebe ich zeitnah, wenn die Klasse "aufgeräumt" und passend kommentiert ist - sonst blickt das keiner (ich auch nicht mehr in Wochen, Monaten, Jahren ...) mehr.
  Mit Zitat antworten Zitat