Ho il seguente codice che invia un pacchetto udp
che viene trasmesso nella subnet.Ricezione di pacchetti broadcast in Python
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))
Il seguente codice è per la ricezione del pacchetto broadcast.
from socket import *
s=socket(AF_INET, SOCK_DGRAM)
s.bind(('172.30.102.141',12345))
m=s.recvfrom(1024)
print m[0]
Il problema è che non riceve alcun pacchetto di trasmissione. Tuttavia, sta ricevendo correttamente i pacchetti udp normali inviati a quella porta.
La mia macchina stava ovviamente ricevendo il pacchetto broadcast, che ho testato usando netcat
.
$ netcat -lu -p 12345
this is testing^C
Quindi, dove è esattamente il problema?
Si potrebbe voler controllare l'IP perché ho provato il metodo fornito da voi con il mio IP e ha funzionato perfettamente. anche se la risposta data da @John Zwinck funziona bene. – TheCreator232