本帖最后由 wky2wy 于 2012-11-2 12:52 编辑
神州的板子,直接改了下官方的例程,recv回调函数收数据部分代码:
char *c;
struct pbuf *q;
if (p != NULL)//如果有数据来了
{
tcp_recved(pcb, p->tot_len);
for(q=p; q != NULL; q = q->next)
{
c = q->payload;
tcp_write(pcb, c, p->len, 0);//接着就直接将收到的数据直接发送出去。
}
pbuf_free(p);
}
现在想测试LwIP的带宽能够达到多少,以及批量传输数据时的乱序、丢包情况。
没什么头绪,就自己瞎折腾,为测试批量传输数据带宽及其他情况,首先要有测试文件,对于测试文件,我写了一个简单的c程序生成一个10M的文本文件,该文件的格式如下:
00001abcde……26个英文字母重复1014字节……xyz99999
第一部分是一个数字序列5字节,第二部分英文字母1014字节,第三部分随便选了个数字重复5字节,每行1024字节,共生成了10240行。
然后用周立功的tcp/ip测试软件以每次1024字节的包向下位机发送数据,同时接收数据生成文本文件,平均收发速度能达到45.5KB/S,增加每次发送的字节数,经过测试1446B是一个上限,每次发送1446字节,收发速度大概在65KB/S,当超过这个数就会发生乱码现象,现在想知道保证不丢包乱序的速度上限能够达到多少,有木有人有相关的实践经验。。
同志们出出主意吧,谢谢啦~~ |