python udp不能接收数据怎么解决?
yang
2020-06-01 10:28:345446浏览 · 0收藏 · 0评论

python3通过udp方式发送的消息可以在网络调试助手接收,但是在网络调试助手上发送的消息在python3上却接收不到。
首先python3接收写的代码如下:
import socket
def receive_message():
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) #创建一个套接字
udp_socket.bind(('', 63630)) #绑定本地信息,自己电脑的ip和程序的端口。ip一般不用写,表示本机的任意一个ip,端口大于常用的1023就可以
while True:
udp_data = udp_socket.recvfrom(1024) #接收数据,1024表示本次接收的字节数
if udp_data[0].decode(encoding='gbk') != 'end':
print('{}:{}'.format(str(udp_data[1]), udp_data[0].decode(encoding='gbk')))
else:
break
udp_socket.close() #关闭套接字
if __name__ == '__main__':
receive_message()解决方法:
在Windows防火墙设置中勾选下图中红色箭头指向的选项

再次运行程序,win10弹出对话框如下:

更多Python知识请关注Python自学网
关注公众号,随时随地在线学习