标题: 关于网口TCP协议发送超过1500字节问题 [打印本页]

作者: wei762359599    时间: 2021-12-16 09:57
标题: 关于网口TCP协议发送超过1500字节问题
用的Lwip,在设备做为客户端连接服务器用MQTT协议进行数据发送时,小于1500字节的一包数据能正常运行,一旦发送一包数据字节超过1500字节,程序就死掉了。求助啊!!

作者: AUG    时间: 2021-12-16 11:45
lwip里的配置你应该认真看一下,是有最大数据发送配置的,不过一般发送多了应该会分包发送,你这程序挂掉应该是内存越界了

作者: wei762359599    时间: 2021-12-16 13:35
AUG 发表于 2021-12-16 11:45
lwip里的配置你应该认真看一下,是有最大数据发送配置的,不过一般发送多了应该会分包发送,你这程序挂掉应 ...

应该是 lwip发送完1500字节之后会清一遍缓存吗  怀疑是不是这个没有清掉  大佬知道是哪个函数清理的缓存吗
作者: AUG    时间: 2021-12-16 14:10
wei762359599 发表于 2021-12-16 13:35
应该是 lwip发送完1500字节之后会清一遍缓存吗  怀疑是不是这个没有清掉  大佬知道是哪个函数清理的缓存 ...

你不用去怀疑lwip库的问题,如果超了它肯定会自己分包发的,你应该去怀疑你自己写的应用层是否有越界的问题,还有就是你给lwip分配的内存空间是否够,没准1500就是极限了呢?还有就是自己的堆栈设置是否合理。多方面原因找找,最后再去找lwip的问题,实在找不到可以换个lwip的版本试试。
作者: AUG    时间: 2021-12-16 14:12
wei762359599 发表于 2021-12-16 13:35
应该是 lwip发送完1500字节之后会清一遍缓存吗  怀疑是不是这个没有清掉  大佬知道是哪个函数清理的缓存 ...

lwip库你如果是找的话太花时间了,仿真你要一层一层往下跑,它的应用全是指针,只能慢慢看,一下是找不出问题的。
作者: Y_G_G    时间: 2021-12-16 14:56
lwip没玩过
实在不行,换个PIC的18高端系列单片机,8K的内存,随便你玩
中端的也有3K多的
作者: AUG    时间: 2021-12-16 15:00
Y_G_G 发表于 2021-12-16 14:56
lwip没玩过
实在不行,换个PIC的18高端系列单片机,8K的内存,随便你玩
中端的也有3K多的

应该不是单片机内存不够的问题,多半是他程序里内存越界了。lwip要跑起来至少都要好几K的内存呢。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1