完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
1.根据例程里写的接收函数,从W5500缓存里取出的一个udp包,前8个字节是IP地址,端口号,数据包长度。这似乎不符合标准的UDP包头格式2.接收函数把前八个字节与payload分别传递给不同的变量(数组)。那么,如果W5500缓存了很多包,那么数据结构应该是这样的:包头1+payload1+包头2+payload2+包头3+payload3+............接收函数是一次性全部取出来,还是每次只接受一包。如果是全部取出来,接收函数只能去掉包头1,而包头2,包头3....则会被当成payload放到对应的缓冲区(数组),这显然是不行的。如果只取一包,那W5500缓存的读写指针又是怎么工作的。
|
|
相关推荐
2个回答
|
|
回帖奖励 +1 分积分
不懂,帮你顶上去。
|
|
|
|
弄懂了,自己回答:数据结构的确是:包头1+payload1+包头2+payload2+包头3+payload3+......这样的,但是接受函数每次按照包头里说明的数据长度来取数据,即每次只取一包,并把w5500的缓存读指针相应的向前移动,只要缓存读指针没有追上缓存写指针,标志位就一直是1,等待下一次取数据,直到数据读完清0。
|
|
|
|
只有小组成员才能发言,加入小组>>
480个成员聚集在这个小组
加入小组5108 浏览 1 评论
12160 浏览 5 评论
3513 浏览 2 评论
2977 浏览 0 评论
12732 浏览 2 评论
w5500 作为tcp server,客户端异常发送【RST,ACK】断开连接问题
1902浏览 1评论
1110浏览 0评论
使用stm32,通过spi的dma 收发,运行多次读写以后w5500发送正常,接收卡死,高人帮忙看看
6314浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-3 10:47 , Processed in 0.701591 second(s), Total 80, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号