diff --git a/udp_relay.py b/udp_relay.py index b39ce47..653e58c 100644 --- a/udp_relay.py +++ b/udp_relay.py @@ -15,11 +15,13 @@ LOOPBACK_TIMEOUT = 1 # Zeit in Sekunden, um Loopback zu verhindern recent_messages = {} def create_socket(port, bind_ip=''): - """Erstellt und konfiguriert den UDP-Socket zum Lauschen auf Broadcast-Nachrichten.""" + """Erstellt und konfiguriert den UDP-Socket zum Lauschen auf Broadcast-Nachrichten. + Bindet immer auf 0.0.0.0 um alle lokalen Interfaces zu hören.""" sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) - sock.bind((bind_ip, port)) + # Immer auf 0.0.0.0 binden um auf allen Interfaces zu hören + sock.bind(("0.0.0.0", port)) return sock def hash_message(message): @@ -77,8 +79,8 @@ def main(): port2 = args.port2 # Starten von zwei Threads für bidirektionales Relay mit zeitbasierter Loopback-Prüfung - thread1 = threading.Thread(target=relay_messages, args=(ip1, port1, ip2, port2)) - thread2 = threading.Thread(target=relay_messages, args=(ip2, port2, ip1, port1)) + thread1 = threading.Thread(target=relay_messages, args=(ip1, port1, ip2, port2), daemon=True) + thread2 = threading.Thread(target=relay_messages, args=(ip2, port2, ip1, port1), daemon=True) thread1.start() thread2.start()