我有一些数据的 UDP 广播。我可以在 OSX 10.6.8 下的 python 2.6.1 中打开以下客户端,并且可以正常工作。我可以捕捉到数据,一切都很好。
但是:这段代码“消耗”了端口,因为我无法打开另一个端口,第二次绑定尝试失败......而且我必须允许多个监听器。这是打开端口的代码:
import select, socket
port = 58083 # port msg is broadcast upon
# Create listening port
# ---------------------
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
try:
s.bind(('', port))
except:
print 'failure to bind'
s.close()
raise
s.setblocking(0)
...由于 UDP旨在向多个客户端广播(除其他外),我认为我做错了什么。我就是想不通是什么。
我在 activestate 上找到了一个示例,该示例建议:
s.bind(('<broadcast>',port))
...但这每次都失败了。绑定到0.0.0.0
作品,但也遭受“一个客户”的问题。绑定到本地 IP(例如192.168.1.100
)根本不起作用。删除绑定根本不起作用。
任何人?