Tôi có mã sau gửi gói udp
được phát trong mạng con.Nhận gói phát sóng bằng 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))
Mã sau đây để nhận gói phát sóng.
from socket import *
s=socket(AF_INET, SOCK_DGRAM)
s.bind(('172.30.102.141',12345))
m=s.recvfrom(1024)
print m[0]
Sự cố là không nhận bất kỳ gói quảng bá nào. Tuy nhiên, nó đang nhận thành công các gói udp bình thường được gửi đến cổng đó.
Máy của tôi rõ ràng đã nhận được gói phát sóng mà tôi đã kiểm tra bằng cách sử dụng netcat
.
$ netcat -lu -p 12345
this is testing^C
Vì vậy, vấn đề chính xác ở đâu?
Bạn có thể muốn kiểm tra IP của mình vì tôi đã thử phương pháp do bạn cung cấp với IP của tôi và nó hoạt động hoàn hảo. trong khi câu trả lời được đưa ra bởi @John Zwinck cũng hoạt động tốt. – TheCreator232