[ZLG-ARM] LWIP不带os运行,遇到一个问题

[复制链接]
2817|3
 楼主| chen3ten 发表于 2007-3-29 22:29 | 显示全部楼层 |阅读模式
lwIP, os, ARM, lg, ni
这个程序可以在easyarm2200上运行,把pc机发来的tcp数据原样发回去,用sniffer观察发现有时发出的数据checksum错误,每个包的最后一个字节错了,在生成校验码的时候用的是正确的数据,可包发出来后最后一个字节就错了,在只发一个字节的情况下必错。我用的是zlg的底层发送函数,我觉的是底层的问题,但不知道错在哪里。<br /> 相关链接:<a href='https://bbs.21ic.com/upfiles/img/20073/2007329222847111.rar'>https://bbs.21ic.com/upfiles/img/20073/2007329222847111.rar</a>
 楼主| chen3ten 发表于 2007-3-30 22:24 | 显示全部楼层

找到原因了

for(ii=0;ii&lt(len/2);ii++)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;WriteToNet(0x10,send_buff.words[ii]);&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br />应改为<br />for(ii=0;ii&lt((len+1)/2);ii++)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;WriteToNet(0x10,send_buff.words[ii]);&nbsp;&nbsp;&nbsp;&nbsp;<br />}<br />不过还发现一个问题,在发送大量数据的时候,会出现“tcp分段”的情况,但tcp是不分段啊,我想知道在low_level_output的时候每个pbuf是不是存储一个完整的包,会不会一个tcp包分别存储在两个pbuf里。
ducha 发表于 2010-5-24 12:14 | 显示全部楼层
IP  不分片 ,不是 TCP 不分段
juventus9554 发表于 2010-5-27 23:12 | 显示全部楼层
晕,都三年了……
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

35

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部