2013-01-31 10 views
6

ich entschuldige mich, wenn dies eine triviale Frage ist.Senden Sie eine Nachricht an alle verfügbaren Maschinen auf WiFi

Ich habe vor kurzem begonnen, einige Android-Programmierung zu tun, und ich schreibe eine einfache App, mit der Sie Ihr Android-Gerät als Controller für Ihren Windows-PC verwenden können. Insbesondere erlaubt es dem Benutzer, Dinge wie Ausschalten der Maschine, Ruhezustand, Neustart etc etc. Ich verwende derzeit eine Python-Bibliothek mit dem Namen CherryPy als Server auf dem Windows-Rechner, um die tatsächlichen win32api Aufrufe auszuführen, um die gewünschten durchzuführen Funktion. Worüber ich mir nicht sicher bin, ist, wie man (dynamisch) erkennt, welcher Rechner im Netzwerk tatsächlich den Server hostet. Alles funktioniert gut, wenn ich meine Maschinen öffentliche IP-Adresse in die Android-App fest codiere, aber offensichtlich ist das weit weniger als ideal. Ich habe erwogen, dass der Benutzer die öffentliche IP-Adresse seiner Maschine manuell in die App eingibt, aber wenn es eine Möglichkeit gibt, eine schnelle Nachricht an alle Rechner im WiFi zu senden und nach einer vordefinierten Antwort zu suchen, die mein Python-Server sendet heraus, das wäre wundervoll. Ist das möglich?

Vielen Dank im Voraus Jungs.

Antwort

1

Schreiben Sie Ihre App mit dem Framework. AllJoyn behandelt diese Details für Sie.

2

Versuchen Sie, ein UDP-Paket an die spezielle Broadcast-Adresse 255.255.255.255 zu senden. Jedes Gerät im Netzwerk sollte eine Kopie dieses Pakets (ohne Firewalls) erhalten und Sie können veranlassen, dass der Server mit seiner Identität auf das Paket antwortet.

+0

Also Idealerweise würde ich dies auf einer höheren Ebene tun - ich habe HTTP-Methoden anstelle von Packet-Level-Sachen verwendet. Wäre das bei dieser höheren Abstraktion möglich? –

Verwandte Themen