查看: 3894|回复: 7

[求助] KSDK2.5 echo例子bug

[复制链接]

该用户从未签到

11

主题

43

帖子

0

中级会员

Rank: 3Rank: 3

积分
418
最后登录
2024-3-22
发表于 2019-1-26 15:00:51 | 显示全部楼层 |阅读模式
本帖最后由 czp111 于 2019-1-26 15:03 编辑

请教一下版上的朋友,从KSDK2.0到2.5版本,里面的“lwip_tcpecho”例子(带freertos系统的)均有一个bug?用tcp工具modscan32连接上后,以太网数据交互正常,但是如果在该连接正常的情况下,再开一个modcan程序来连接板卡,大约过七八秒的样子,之前的连接会断开,整个以太网会崩溃,ping不通。这个现象我用“FRDM-K64F”和“FRDM-K66F”两块官方板卡试了都有。后面我用别的tcp工具也可以复现,先建立一个tcp连接,定时发数据和收数据,再开另外一个tcp连接,居然也能连上(照理来说例子里面只有一个accept,不应该可以建立两个tcp连接),我如果通过后面那个tcp连接也定时发数据,虽然收不到回应,但过几秒之后也是一样的会导致板卡的网络崩溃。
我知道答案 目前已有7人回答
回复

使用道具 举报

该用户从未签到

719

主题

6378

帖子

0

超级版主

Rank: 8Rank: 8

积分
25351
最后登录
2025-8-29
发表于 2019-1-28 10:03:03 | 显示全部楼层
请问测试过程有对例程进行过修改吗?
能否贴出截图介绍一下测试过程,还有建议通过wireshark抓一下网络包分析一下
回复 支持 反对

使用道具 举报

该用户从未签到

11

主题

43

帖子

0

中级会员

Rank: 3Rank: 3

积分
418
最后登录
2024-3-22
 楼主| 发表于 2019-1-28 13:54:27 | 显示全部楼层
小恩GG 发表于 2019-1-28 10:03
请问测试过程有对例程进行过修改吗?
能否贴出截图介绍一下测试过程,还有建议通过wireshark抓一下网络包分 ...

没有做任何修改,在官方生成网站下载的“http://mcuxpresso.nxp.com/en/welcome”,board里选择FRDM-k64,开发平台选择的IAR,网站编译的时候部件选择了all,编译好后进行下载。然后解压,打开echo例子,下载到FRDM-k64开发板中,连接网线,设置本地ip地址为同一个网段。
打开两个modscan32工具,第一个连接上,正常通讯,一直交互数据,另外一个之后也连接,大约过七八秒网络就会崩溃,之前的连接会断开,ping也ping不通。
附件上传不了modscan32的压缩包,可以直接百度下载一个,几兆大小。
回复 支持 反对

使用道具 举报

该用户从未签到

719

主题

6378

帖子

0

超级版主

Rank: 8Rank: 8

积分
25351
最后登录
2025-8-29
发表于 2019-1-28 13:59:15 | 显示全部楼层
你是说在电脑上,打开两个modscan32链接同一个板子,传输数据是吗?有截图吗?
回复 支持 反对

使用道具 举报

该用户从未签到

11

主题

43

帖子

0

中级会员

Rank: 3Rank: 3

积分
418
最后登录
2024-3-22
 楼主| 发表于 2019-1-28 15:02:04 | 显示全部楼层
本帖最后由 czp111 于 2019-1-28 15:06 编辑

是的,开两个一样的连接,第一个能连上,交互数据,是正常的,符合程序设计。但第二个同样的连接,会一直连下位机和发数据,过七八秒导致下位机网络崩溃,你可以试一下,很容易复现。

现在可以上传附件了,我把工具上传了一下
1.png
2.png

Modscan32.zip

2.19 MB, 下载次数: 2, 下载积分: 威望 1

回复 支持 反对

使用道具 举报

该用户从未签到

11

主题

43

帖子

0

中级会员

Rank: 3Rank: 3

积分
418
最后登录
2024-3-22
 楼主| 发表于 2019-1-30 17:43:11 | 显示全部楼层
小恩GG 发表于 2019-1-28 13:59
你是说在电脑上,打开两个modscan32链接同一个板子,传输数据是吗?有截图吗? ...

您好,请问您那边可以复现该bug吧?有什么解决办法么?
回复 支持 反对

使用道具 举报

该用户从未签到

719

主题

6378

帖子

0

超级版主

Rank: 8Rank: 8

积分
25351
最后登录
2025-8-29
发表于 2019-1-31 16:35:55 | 显示全部楼层
是有这个现象,但不是bug, TCP通信常基于客户机-服务器模型,该例程是基于echo协议,你可以把例程修改成Telnet 服务器功能,这样可以实现响应对个客户机的请求了
回复 支持 反对

使用道具 举报

该用户从未签到

11

主题

43

帖子

0

中级会员

Rank: 3Rank: 3

积分
418
最后登录
2024-3-22
 楼主| 发表于 2019-2-5 13:06:09 | 显示全部楼层
本帖最后由 czp111 于 2019-2-5 13:08 编辑
小恩GG 发表于 2019-1-31 16:35
是有这个现象,但不是bug, TCP通信常基于客户机-服务器模型,该例程是基于echo协议,你可以把例程修改成Tel ...

就算是基于echo协议,也应该算是tcp服务器的模型吧,我现在是想用基于这个例子改成多连接的形式,可以同时允许多个客户端连接。现在echo例子我的理解就是个单连接,照理来说有一个连接上了,其他连接应该是无法建立的,而不是其他连接在连接下位机时把下位机搞崩溃,那样,我改成多连接之后也会有这个问题,多余这个连接数的连接会导致下位机死机。

从例子的现象来看,一个连接建立数据交互后,用其他tcp工具还可以建立两个连接,只是不能发数据,这是我不能理解的,感觉里面有其他隐藏的tcp服务一样,你可以试试用其他tcp工具测试,以客户端方式运行,可以同时建立两个以上的tcp连接,但只有一个遵循echo协议,发什么数据就回什么数据,其他连接能建立但不能发数据,我想搞清楚其他连接是怎么建立的?在底层关闭掉,防止其他未知连接的操作将现有连接搞崩溃。
多连接应用工况下是很容易出现超过下位机允许数量的连接的,多余的连接应该是安全的挡在外面,而不应该将下位机连死。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-8-31 09:38 , Processed in 0.105066 second(s), 29 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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