1
这里是广播服务器无法接收UDP广播在Python
from time import sleep
from socket import *
PORT = 50000
s = socket(AF_INET, SOCK_DGRAM)
s.bind(('', 0))
s.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)
data = "I am server"
while 1:
s.sendto(data, ('<broadcast>', PORT))
print "sent data"
sleep(5)
这里是广播接收器
from socket import socket, AF_INET, SOCK_DGRAM
PORT = 50000
client = socket(AF_INET, SOCK_DGRAM)
client.bind(('0.0.0.0', PORT))
data, addr = s.recvfrom(1024) #sticks here forever!
if data:
print "Found Broadcast server at : " + addr
但问题是,我只接收在s.recvfrom(1024)
坚持,同时通过tcpdump的,我能够看到数据包,那么为什么这个python客户端无法捕捉它呢? 命令是sudo tcpdump -i wlan0 ip -X dst host 255.255.255.255
您能否建议更改代码? –
@AbhishekSingh,我不会为你写代码。我相信,我的建议很明确。 – SergeyA
至少告诉我需要什么选项来设置套接字,并且对于服务器我已经设置了套接字选项 –