Gewusst wie: empfangen von UDP-broadcast-Pakete auf einem BESTIMMTEN interface?

Auf dem iPhone habe ich einen UDP-socket gebunden und es an der WLAN-Schnittstelle. Ich konnte SO_BROADCAST und ich bin in der Lage zum senden von broadcast-Pakete zu dem Netzwerk (bestätigt durch einen client, der auf meinem notebook.) Aber der UDP-socket auf dem iPhone nicht in der Lage ist zum empfangen von broadcast-Paketen.

Meiner Meinung nach ist das ein kernel-Fehler, weil nicht erlaubt, einen socket mit SO_BROADCAST aktiviert zu erhalten, broadcast-Paket, ist eine schlechte design-Entscheidung.

Das problem genauer beschrieben wird hier und hier. Die beliebteste Lösung für dieses problem ist die Bindung an INADDR_ANY. Allerdings wäre es schön, in der Lage zu binden, einen UDP-socket, um nur eine Schnittstelle, während immer noch empfangen von broadcast-Paketen! Gibt es wirklich keine Möglichkeit, dies zu erreichen?

(Wenn ich bind a socket to 192.168.1.7 auf ein class C Netz (/24), sollte es akzeptieren gesendeten Pakete zu 192.168.1.7 und gesendeten Pakete zu 192.168.1.255!)

Dank!

InformationsquelleAutor Michael | 2014-01-14
Schreibe einen Kommentar