无法在Python 2.7中发送UDP数据包或对其进行故障排除

无法在Python 2.7中发送UDP数据包或对其进行故障排除,python,udp,Python,Udp,我正在尝试将数据包发送到我的“wifi灯光”照明系统(如飞利浦色调)。我这里有文档,描述了需要使用端口8899将udp数据包发送到我的“网桥”,我有这个端口的IP地址 所有UDP命令都是3字节。 i、 e.打开所有RGBW彩色Wifi灯智能灯,然后发送 的TCP/IP UDP数据包:0x42 0x00 0x55 我能在python中找到的唯一方法是将它们作为下面的消息链接在一起。sendto()需要字符串,不接受十六进制或整数 import socket UDP_IP1 = '192.168.0

我正在尝试将数据包发送到我的“wifi灯光”照明系统(如飞利浦色调)。我这里有文档,描述了需要使用端口8899将udp数据包发送到我的“网桥”,我有这个端口的IP地址

所有UDP命令都是3字节。 i、 e.打开所有RGBW彩色Wifi灯智能灯,然后发送 的TCP/IP UDP数据包:0x42 0x00 0x55

我能在python中找到的唯一方法是将它们作为下面的消息链接在一起。sendto()需要字符串,不接受十六进制或整数

import socket
UDP_IP1 = '192.168.0.104'
UDP_PORT = 8899
MESSAGE = str(0x410055)#0x410055

print "UDP target IP:", UDP_IP
print "UDP target port:", UDP_PORT
print "message:", MESSAGE

sock = socket.socket(socket.AF_INET, # Internet
                     socket.SOCK_DGRAM) # UDP
sock.sendto(MESSAGE, (UDP_IP, UDP_PORT))
然而,我总是会犯这个错误

  File "C:\3_test\wifilight_py.py", line 37, in <module>
    sock.sendto(str(e), (UDP_IP, UDP_PORT))
socket.error: [Errno 10013] An attempt was made to access a socket in a way forbidden by its access permissions
[Finished in 0.5s]
文件“C:\3\u test\wifilight\u py.py”,第37行,在
sock.sendto(str(e),(UDP_IP,UDP_端口))
socket.error:[Errno 10013]试图以访问权限所禁止的方式访问套接字
[在0.5s内完成]
尽管windows防火墙已被完全禁用(windows 7/Python 2.7),但仍存在此问题


我束手无策,不知道该如何解决这个问题。我安装了Wireshark,但它提供了大量信息,没有任何相关信息。

问题是什么?似乎您的问题被截断了。我怀疑在调用
sendto()
函数之前,您需要执行
sock.bind((“”,0))
。谢谢adrianX,我尝试了,但没有成功。洛伦兹,广播应该做点什么(比如关灯),但它什么也没做,或者只是出了个错误。我想知道我怎样才能嗅探流量以进行故障排除。。。