树莓派UDP数据包无法被Windows 11 PC接收的问题排查与解决
树莓派向Windows 11发送UDP数据包无响应问题排查与解决
问题场景
我尝试从树莓派向Windows 11 PC发送UDP数据包,编写了以下两个排查脚本:
树莓派(服务端)代码
import socket from time import sleep _socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) ip = '-->[The coresponding IP Adress]<--' port = 4000 data = 'hello'.encode() while True: _socket.sendto(data, (ip,port)) sleep(.1)
Windows 11 PC(客户端)代码
import socket _sockte = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) _sockte.bind(('',4000)) while True: pack = _sockte.recvfrom(1024) print(pack[0].decode())
异常现象
运行脚本后,PC端脚本无任何响应,但通过Wireshark抓包可以确认树莓派确实已向PC的4000端口发送了UDP数据包。
奇怪的是,将服务端脚本运行在PC、客户端脚本运行在树莓派时,通信却能正常工作。我此前在其他网络设备上用同样方法实现过UDP通信,不清楚本次问题的原因。
解决方法
问题已解决:Windows防火墙将当前网络识别为公共网络,拦截了所有入站UDP数据包。将网络类型修改为私有网络后,UDP流量即可正常通行。
内容的提问来源于stack exchange,提问作者Lars Köbel
相关产品推荐
相关产品推荐

