你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

LWIP缓存操作的问题

[复制链接]
uwyciw100 提问时间:2017-2-21 09:30 /
要用UDP发送3个字节,代码如下,但接收端却收到了50多个字节,请问在缓存操作部分是否有什么问题?谢谢
  1. pcb = (struct udp_pcb *)udp_new();
  2. udp_connect(pcb, &des_ipaddr, des_port);
  3. pbuf_alloc(PBUF_TRANSPORT, 3, PBUF_RAM);
  4. pbuf_take(pbuf, (const void *)sample_data, 3);
  5. udp_send(pcb, pbuf);
复制代码


收藏 1 评论6 发布时间:2017-2-21 09:30

举报

6个回答
队长shiwo 回答时间:2017-2-21 09:40:30
UDP有协议头那些东西的,应该也会收的到的,看你入不入栈
uwyciw100 回答时间:2017-2-21 11:05:15
队长shiwo 发表于 2017-2-21 09:40
UDP有协议头那些东西的,应该也会收的到的,看你入不入栈

PC端是正确解析了UDP包的,遇到的问题是,收到的包,数据区不对,本意是传3个字节,结果收到59个字节,目的字节在数据区的最后。
zoomdy 回答时间:2017-2-21 12:40:13
如果这段代码是你实际使用的代码,那么pbuf没有初始化!
  1. pbuf = pbuf_alloc(PBUF_TRANSPORT, 3, PBUF_RAM); // 这才是正确的姿势
复制代码
队长shiwo 回答时间:2017-2-21 12:57:44
uwyciw100 发表于 2017-2-21 11:05
PC端是正确解析了UDP包的,遇到的问题是,收到的包,数据区不对,本意是传3个字节,结果收到59个字节,目 ...

,能收到你的数据,就是多收了其他的是吧,那你能解析多收的字节的信息是什么吗
uwyciw100 回答时间:2017-2-21 14:48:20
zoomdy 发表于 2017-2-21 12:40
如果这段代码是你实际使用的代码,那么pbuf没有初始化!

复制不全,,正常初始化了,不好意思
uwyciw100 回答时间:2017-2-21 14:54:55
队长shiwo 发表于 2017-2-21 12:57
,能收到你的数据,就是多收了其他的是吧,那你能解析多收的字节的信息是什么吗 ...

多收到的数据没看出来有什么特别的信息。我又修改了一下代码。除了前面的初始化代码,以下代码会被反复执行。
  1. pbuf=pbuf_alloc(PBUF_TRANSPORT, 3, PBUF_RAM);
  2. pbuf_take(pbuf, (const void *)sample_data, 3);
  3. udp_send(pcb, pbuf);
  4. pbuf_free(pbuf);
复制代码
但发现,如果我设置sample_data数组为3个字节大小,就会有多余数据出现,设置成20(随便设置,最小是多少还在测试)时,就没有多余数据。




  1. <div class="blockcode"><blockquote>
复制代码


所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版