У меня есть следующий код, который отправляет пакет udp
, который транслируется в подсети.
from socket import *
s=socket(AF_INET, SOCK_DGRAM)
s.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)
s.sendto('this is testing',('255.255.255.255',12345))
Следующий код предназначен для приема широковещательного пакета.
from socket import *
s=socket(AF_INET, SOCK_DGRAM)
s.bind(('172.30.102.141',12345))
m=s.recvfrom(1024)
print m[0]
Проблема заключается в том, что он не получает никакого широковещательного пакета. Тем не менее, он успешно получает нормальные пакеты udp, отправленные на этот порт.
Моя машина, очевидно, получала широковещательный пакет, который я тестировал с помощью netcat
.
$ netcat -lu -p 12345
this is testing^C
Итак, где именно проблема?