Я проверил, что сокет Python правильно привязан к правильному порту (37020 ) и IP-адрес (0.0.0.0 для всех интерфейсов).
Брандмауэры и программное обеспечение безопасности не являются проблемой; Я даже пытался полностью отключить брандмауэр, чтобы исключить любую потенциальную блокировку UDP-трафика на порту 37020.
Сокет не получает широковещательный пакет, хотя Wireshark может видеть его на сеть.
Получатель:
Код: Выделить всё
import socket
def start_udp_server():
with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as server_socket:
server_socket.bind(('0.0.0.0', 37020)) # Binding to all interfaces
print("Server listening on port 37020...")
while True:
message, addr = server_socket.recvfrom(4096) # Listen for incoming packets
print(f"Received message: {message} from {addr}")
Код: Выделить всё
import socket
def send_broadcast():
with socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP) as sock:
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
message = "Test message"
sock.sendto(message.encode(), ('
', 37020))
Привязка: сокет Python привязан к правильному адресу и порту.
Рассылка: сокет настроен на широковещательную передачу.
Сеть: отправитель и получатель находятся в одной сети, и широковещательный адрес 255.255.255.255 должен работать.>
Подробнее здесь: https://stackoverflow.com/questions/791 ... -socket-ev
Мобильная версия