讲师中心 微信公众号
AI工具推荐 视频效率加速

Workerman UDP监听地址怎么写

夏敏小哥_5387

夏敏小哥_5387

发布时间:2026-09-09 11:41:31

|

523人浏览过

|

来源于php中文网

原创

UDP监听地址必须显式写为ip:port格式,如'127.0.0.1:2345',不可省略IP写成':2345'或'2345';且必须在$context中指定'transport'=>'udp',否则默认按TCP初始化导致onMessage不触发。

workerman udp监听地址怎么写

UDP监听地址格式必须是 ip:port,不能省略IP

Workerman 的 Worker 构造函数对 UDP 协议要求严格:地址必须显式写出 IP 和端口,比如 '0.0.0.0:2345''127.0.0.1:2345'。写成 ':2345''2345' 会直接报错 Invalid address —— 这是新手最常卡住的地方。

原因在于 Workerman 底层调用 PHP 的 socket_bind(),而 UDP socket 不支持“仅端口”的绑定语法(TCP 的 0.0.0.0:port 可简写为 :port,但 UDP 不行)。

  • '0.0.0.0:2345':监听所有网卡,外部可访问(注意防火墙)
  • '127.0.0.1:2345':仅本地进程通信,更安全
  • '192.168.1.100:2345':只绑定指定内网 IP,适合多网卡服务器
  • 千万别写 ':2345''udp://:2345''2345',全部无效

Worker 实例必须显式指定 $context 并设 transport'udp'

光写对地址还不够。UDP 模式下,Worker 必须通过 $context 明确声明传输协议,否则默认走 TCP,会导致监听成功但收不到包。

正确写法:

$worker = new Worker('udp://0.0.0.0:2345', [
    'transport' => 'udp'
]);

错误写法(看似地址对,实则走 TCP):

// ❌ 错误:没传 transport,底层仍按 TCP 初始化
$worker = new Worker('udp://0.0.0.0:2345');
  • transport 必须在 $context 数组里传,不能靠协议前缀自动识别
  • udp:// 前缀只是习惯写法,Workerman 并不解析它;真正起作用的是 transport 配置项
  • 如果漏掉 transportonMessage 回调永远不会触发,也没有报错,极难排查

接收数据时 $client_info 不含 port 字段?那是你用了旧版

早期 Workerman(onMessage 回调中,$client_info 只有 remote_ip,没有 remote_port。这导致无法回包——因为 UDP 是无连接的,必须知道对方端口才能 sendto

解决方案只有两个:

  • 升级到 Workerman ≥ 4.0.20(推荐),此时 $client_info['remote_port'] 存在且可用
  • 若无法升级,改用 $worker->send($data, $client_info['remote_ip'].':'.$client_info['remote_port']) 手动拼地址(但需自行处理端口缺失逻辑)

验证方式:打印 var_dump($client_info),看到 remote_port 字段才算正常。

防火墙和 SELinux 会静默丢弃 UDP 包,别只盯着代码

UDP 没有连接建立过程,发包失败或收不到响应,90% 不是代码问题,而是系统层拦截。常见表现:本地 nc -u 127.0.0.1 2345 能通,但局域网其他机器发不通。

  • Linux:iptables -L -n | grep :2345 看是否被 DROP;临时放行:iptables -I INPUT -p udp --dport 2345 -j ACCEPT
  • CentOS/RHEL 8+ 默认启用 firewalld:firewall-cmd --add-port=2345/udp --permanent && firewall-cmd --reload
  • SELinux 开启时,即使端口开放也可能拒绝 UDP 绑定,临时关闭测试:setenforce 0

UDP 的“静默失败”特性决定了:只要外部收不到包,先查系统网络策略,再查代码。

相关文章

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

相关专题

更多
tcp和udp的区别
tcp和udp的区别

TCP和UDP的区别,在连接性、可靠性、速度和效率、数据报大小以及适用场景等方面。本专题为大家提供tcp和udp的区别的相关的文章、下载、课程内容,供大家免费下载体验。

403

2023.07.25

udp是什么协议
udp是什么协议

UDP是OSI参考模型中一种无连接的传输层协议。本专题为大家带来udp是什么协议的相关文章,免费提供给大家。

2211

2023.08.08

tcp和udp有什么区别
tcp和udp有什么区别

tcp和udp的区别有:1、udp是无连接的,tcp是面向连接的;2、udp是不可靠传输,tcp是可靠传输;3、udp是面向报文传输,tcp是面向字节流传输。想了解更多tcp相关的内容,可阅读本专题下面的相关文章。

2549

2024.11.14

Workerman安装配置教程
Workerman安装配置教程

Workerman安装配置教程专题提供Workerman安装配置、WebSocket开发、TCP通信、异步编程、高并发服务搭建与PHP实时通信开发教程。

126

2026.05.20

Workerman实时通信与长连接开发教程
Workerman实时通信与长连接开发教程

WWorkerman实时通信与长连接开发教程聚合实时通信、聊天室、长连接、消息推送、AI流式输出等Workerman高并发开发内容。

162

2026.05.20

Workerman异步通信与TCP服务器开发
Workerman异步通信与TCP服务器开发

Workerman异步通信与TCP服务器开发专题整理Workerman异步通信、TCP服务、HTTP服务、WebSocket开发与高并发PHP服务器教程。

127

2026.05.20

AionClaw AI智能体与电脑自动化任务执行功能使用教程
AionClaw AI智能体与电脑自动化任务执行功能使用教程

AionClaw专题整理AI智能体与电脑自动化相关功能使用教程,涵盖安装部署、AI任务执行、Skills技能、文件处理、浏览器控制、电脑操作、持久记忆、聊天工具连接以及办公、编程和内容创作等功能,帮助用户快速掌握AionClaw的实际使用方法。

0

2026.09.20

AI视频生成软件推荐
AI视频生成软件推荐

本专题汇总了当前主流的AI视频生成软件推荐与排行榜单,涵盖seko、AniShort、剧云、Lovart、LiblibAI及立刻mv等热门工具。同时整理了各软件在文生视频、图生视频、时长限制、画质表现及免费额度等方面的差异对比,助您快速选对适合创作需求的AI视频生成工具。

160

2026.09.16

ai生成视频的工具免费版合集
ai生成视频的工具免费版合集

本专题汇总了当前免费AI生成视频工具的排行榜与推荐清单,涵盖seko、讯飞智作、AniShort及剧云、Lovart等多模型集成平台。同时整理了各工具的免费额度、输出时长、水印政策及适用场景差异,助您快速选择合适工具开启AI视频创作。

60

2026.09.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Webman中文手册
Webman中文手册

共0课时 | 0人学习

webman初步使用及后台搭建
webman初步使用及后台搭建

共15课时 | 2.6万人学习

Webman中文手册
Webman中文手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn