野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11907|回复: 3

lwip

[复制链接]
发表于 2018-1-16 17:11:33 | 显示全部楼层 |阅读模式


接收数据时,low_level_input函数
file:///C:\Documents and Settings\Administrator\Application Data\Tencent\Users\376031298\QQ\WinTemp\RichOle\@}289FL3IYX9IM2W31YWVFC.png @}289FL3IYX9IM2W31YWVFC.png
这里变量 i 为接收数据包的总长度,如果
for(q=p;q!=NULL;q->next)
{
     memcpy();
    i = i+q->len;  
}
循环只运行一次,那么 i (等于q->len)也等于p->tot_len       那么返回值就是0,这样的话接收的数据还有效吗?                                                              

回复

使用道具 举报

发表于 2018-1-16 17:24:37 | 显示全部楼层
不了解这个,帮顶
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-17 08:40:04 | 显示全部楼层
flyleaf 发表于 2018-1-16 17:24
不了解这个,帮顶

火哥,为什么我的lwip模块直接接电脑,ping 不通啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-17 09:08:31 | 显示全部楼层
一次循环返回p指针,如果三次循环(3001字节),一个pbuf结构体存储最大1500字节,就需要三个pbuf这里为pbuf1,pbuf2,pbuf3字节存储分为1500,1500,1         pbuf1->tot_len为3000, pbuf2->tot_len为1501,pbuf3->tot_len为1,i值为总字节数3001,p->tot_len为1,这里必然不相等返回 0 。求解惑
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-1-17 21:46 , Processed in 0.045167 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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