Broadcast senden über UDP-Socket und Monitor Mode

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Che Guevara
User
Beiträge: 1
Registriert: Montag 20. April 2020, 19:12

Hi,

ich bin ganz neu hier und hab direkt eine Frage.
Ich möchte zwei Raspberry Pi's miteinander über UDP-Sockets kommunizieren lassen.
Da die Entfernung aber schwankt und ich einfach nur Senden möchte (ohne ACK etc..., also verbindungslos), möchte ich das per Broadcast machen.
Vor ca einem Jahr hab ich das schon einmal umgesetzt, leider finde ich weder den Sourcecode noch die Homepage von damals wieder...
Das wäre mein Code zum senden:

Code: Alles auswählen

import socket
import time

interface = b'wlan1'

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BINDTODEVICE, interface)
s.bind(('',5555))

msg = b"Hi du Ei"

while True:
    s.sendto(msg, ('<broadcast>',5555))
    print("sent")
    time.sleep(0.1)
Wenn ich dann

Code: Alles auswählen

sudo tcpdump udp
laufen lasse, erhalte ich folgendes:

Code: Alles auswählen

08:25:47.806139 [|802.11]
# immer fortlaufend, eben im 0.1s takt
Lasse ich hingegen

Code: Alles auswählen

sudo tcpdump -i wlan1 udp
laufen, kommt garnichts.
"wlan1" ist ein externes WiFi Modul, welches per Terminal in den Monitor Mode geschaltet ist.
Das Modul funktioniert zu 100%, den wenn ich zb. "WifiBroadcast" aufspiele, funktionierts auch.

Wäre super, wenn mir jemand helfen könnte mit Tipps, Vorschlägen, etc...

Vielen Dank & Gruß
Chris
Antworten