OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 659|回复: 3

一个关于lwip中UDP的求助,请大佬们帮帮忙

[复制链接]

54

主题

347

帖子

0

精华

高级会员

Rank: 4

积分
948
金钱
948
注册时间
2022-4-20
在线时间
356 小时
发表于 2024-4-12 15:34:35 | 显示全部楼层 |阅读模式
50金钱
我在工程中创建了一个二维数组buf[40][1500];
然后按照行号初始化了每一行,现在他的第0行所有值都是0,第1行所有值都是1,以此类推。
然后在主函数还有一个数组send[1500];该数组用于UDP发送时使用,具体代码如下:
  1. for(i = 0; i < 40; i++)
  2. {
  3.     memcpy(send,buf[i],1500);
  4.     UDP_SendData(send, 1500);
  5.     i++;
  6. }
复制代码



UDP_SendData的代码如下:

  1. /*******************************************************************************
  2. * Function Name  : UDP_SendData
  3. * Description    : UDP数据发送
  4. * Input          : buff   待发送的数据
  5.                    len    待发送数据长度
  6. * Output         : None
  7. * Return         : None
  8. * Note             : None
  9. *******************************************************************************/
  10. void UDP_SendData(uint8_t *buff, uint16_t len)
  11. {
  12.     struct pbuf *p;
  13.     p = pbuf_alloc(PBUF_TRANSPORT,len, PBUF_POOL);

  14.     if (p != NULL)
  15.     {
  16.         /* copy data to pbuf */
  17.         pbuf_take(p, (char*)buff, len);
  18.          
  19.         /* send udp data */
  20.         udp_send(UdpPcb, p);

  21.         /* free pbuf */
  22.         pbuf_free(p);
  23.     }
  24. }
复制代码
全速运行后,我使用了wireshark来抓包,发现存在漏发和连续几次都是同样数据的现象,然后我在上面for循环内加入了一个100us的延时,再次抓包,发现正常。

求助:为什么会这样?如果我想不使用延时,那么怎样才能让它拥有正常的现象?

又菜又爱指点
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

22

主题

2251

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4471
金钱
4471
注册时间
2013-4-22
在线时间
335 小时
发表于 2024-4-12 22:19:53 | 显示全部楼层
你的UDP数据超了TCPIP最大的长度,没记错的一次只能发1470字节,这个是标准的TCPIP规定的。
回复

使用道具 举报

54

主题

347

帖子

0

精华

高级会员

Rank: 4

积分
948
金钱
948
注册时间
2022-4-20
在线时间
356 小时
 楼主| 发表于 2024-4-15 16:23:32 | 显示全部楼层
三叶草 发表于 2024-4-12 22:19
你的UDP数据超了TCPIP最大的长度,没记错的一次只能发1470字节,这个是标准的TCPIP规定的。

我发1000个字节的时候现象也是一样的
又菜又爱指点
回复

使用道具 举报

5

主题

66

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2023-6-26
在线时间
53 小时
发表于 2024-5-6 09:05:22 | 显示全部楼层
UDP本来就是不可靠的传输,数据大还是用TCP保险一些
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 15:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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