硬汉嵌入式论坛

 找回密码
 立即注册
查看: 949|回复: 4
收起左侧

[FreeRTOS-TCP] lwip 多客户端问题

[复制链接]

16

主题

17

回帖

65

积分

初级会员

积分
65
发表于 2024-12-6 17:03:20 | 显示全部楼层 |阅读模式
遇到个问题,再使用modbustcp通信时。想要实现多个客户端连接,就再服务器上执行检测到客户端连接就创建一个客户端任务。
第一个客户端连接到服务器后,双方可以正常数据交互,且数据报文正确,MCU端接收的报文就是poll软件发送的报文。
然后把客户端断开重连,此时MCU端接收的报文就是错误的,完全不是poll软件发送的报文。附上图。。。

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116197
QQ
发表于 2024-12-7 09:41:02 | 显示全部楼层
你的服务器重连处理应该有问题,不能正常识别处理。

这个是NetXDUO的,可供参考

ThreadX NetXDUO作为服务器接收100个客户端测试成功,分享工程和测试效果(2022-01-16)
https://www.armbbs.cn/forum.php? ... 0613&fromuid=58

回复

使用道具 举报

16

主题

17

回帖

65

积分

初级会员

积分
65
 楼主| 发表于 2024-12-8 17:09:16 | 显示全部楼层
之前做但客户端通信,断开重连都没有问题的。这次就是改成以任务创建的形式,如果有客户端连接,那就创建一个客户端处理任务。
回复

使用道具 举报

16

主题

17

回帖

65

积分

初级会员

积分
65
 楼主| 发表于 2024-12-9 10:44:06 | 显示全部楼层
已经找到问题了,接收和发送的内存没有释放导致后面的数据都是错误的。但是现在最多只能连接2个客户端,连接3个客户端程序就会死掉,改了lwipopts文件,都改成四个,还是不行,rtos堆栈内存没有报错
/* MEMP_NUM_TCP_PCB: the number of simulatenously active TCP
   connections. */
#define MEMP_NUM_TCP_PCB        4
/* MEMP_NUM_TCP_PCB_LISTEN: the number of listening TCP
   connections. */
#define MEMP_NUM_TCP_PCB_LISTEN 4

回复

使用道具 举报

16

主题

17

回帖

65

积分

初级会员

积分
65
 楼主| 发表于 2024-12-9 14:14:24 | 显示全部楼层
已经发现问题了,第三个连接程序会死掉的原因是处理函数没有加任务调度,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-6-10 02:49 , Processed in 0.266643 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表