You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python通过互联网连接向已连接设备广播消息

你当前使用的UDP本地广播方案仅支持同一局域网内的设备通信,互联网中的路由器会默认丢弃255.255.255.255的广播包,无法实现跨网络的消息广播。你现有的代码已经是完整的广播发送端,不需要额外加发送逻辑,缺少的是运行在各个目标设备上的接收端代码,具体使用方案分两种场景:

场景1:仅需要给同一局域网下的设备发消息

你可以直接沿用现有发送端代码,只需要给每个要接收消息的设备部署对应平台的UDP监听程序,监听端口50000即可:

  • 笔记本端Python接收示例代码:
# 运行在Windows/macOS/Linux笔记本上的UDP接收脚本
MYPORT = 50000
from socket import *

s = socket(AF_INET, SOCK_DGRAM)
# 允许同一端口被多个程序绑定,方便多个设备同网测试
s.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1)
s.bind(('', MYPORT))

while True:
    data, sender_addr = s.recvfrom(1024)
    print(f"收到广播消息:{data.decode().strip()}")
  • 安卓端:用Java/Kotlin实现后台UDP监听服务,绑定50000端口接收UDP包即可
  • iOS端:用Swift的Network框架或者原生Socket接口,监听50000端口的UDP流量即可

注意:所有设备需要连接同一局域网,且关闭对应端口的防火墙拦截,才能正常收到消息。

场景2:需要跨互联网给不同网络下的设备发消息

现有UDP广播方案完全不可用,你需要更换实现逻辑:

  • 优先选择MQTT协议:搭建公网MQTT broker,所有笔记本、安卓、iOS设备订阅同一个主题,你发消息时往该主题推送即可,全平台都有成熟的MQTT客户端SDK,不需要自己处理底层连接逻辑
  • 也可以自己搭建公网中转服务器:所有接收设备主动和中转服务器保持TCP长连接,你发送消息时先发给中转服务器,由服务器转发给所有在线的接收设备
  • 如果接收设备数量少且有公网IP/端口映射,可以直接用UDP单播逐个给目标设备的公网地址发消息,不需要广播机制

内容的提问来源于stack exchange,提问作者yxngkxng 480

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 04:15:03