import socket import threading PORT = 54000 BROADCAST = "255.255.255.255" udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP) udp_socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) interfaces = socket.getaddrinfo(host=socket.gethostname(), port=None, family=socket.AF_INET) for idx, ip in enumerate(interfaces): print(f"{idx}: {ip[-1][0]}") interface = input("Który interfejs: ") ip_addr = interface[int(interface)][-1][0] udp_socket.bind((ip_addr, PORT)) def recive_bradcast(): print("Nasluchuje....") t = threading.currentThread() while getattr(t, "do_run", True): data, addr = udp_socket.recvfrom(1024) print(f"from: {addr}, recive: {data}") print("Przestalem nasluchiwac!") recv_thread = threading.Thread(target=recive_bradcast) recv_thread.start() counter = 0 while True: choice = input("Wyslac dane?[t/n] ") if choice.lower() == "n": run = False break elif choice.lower() != "t": continue counter = counter + 1 udp_socket.sendto(f"test connection, counter: {counter}".encode("utf8"), (BROADCAST, PORT)) recv_thread.do_run = False udp_socket.close() # print(interfaces[int(interface)][-1][0]) # allips = [ip[-1][0] for ip in interfaces] # print(allips) # print(socket.gethostbyname(socket.gethostname())) # print(socket.if_nameindex()) # print(socket.if_nametoindex(socket.gethostname())) # print(interfaces)