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

MQTT Paho库是否存在payload大小限制?超600字节数据包异常问询

问题描述

任何超过600字节的payload都会导致数据包格式错误,无法发布。不过MQTTSerialize_publish(对应eclipse paho.mqtt.embedded-c库的MQTTPacket模块)返回的payload字节数是正确的,例如1260字节。
我在代码和MQTT标准中都没有查到明确的payload大小限制。
我的函数调用方式如下:

unsigned char bufm[1500];
int bufmlen = sizeof(bufm);
rc = MQTTSerialize_publish(bufm, sizeof(bufm), dup, qos, retained, msgid, topicString[0], message, messageLen);

针对某一payload,控制台输出如下:

messageLen=580
sizeof bufm=1500
rc=600

此时payload(bufm)传输正常。
针对另一个payload的输出如下:

messageLen=638 
sizeof bufm=1500
rc=658

此时由于payload超过600字节,bufm仅包含19字节,仅存储了message数组的部分内容,且两次返回的rc值均为正确值。另外我声明的unsigned char bufm[1500];指向的内存空间是充足的。

问题更新

问题已定位:是栈相关问题,指针指向了栈空间,发生了栈溢出。抱歉占用大家时间,感谢各位的帮助。

内容的提问来源于stack exchange,提问作者Michael Papageorge

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:45:04