完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
求助大侠们帮忙看看STM32 F4 板子LWIP《网络实验5 RAW_TCP服务器实验》中的发送函数为什么要调用tcp_recved()这个函数?这个函数不是用于接收的吗?我查阅了很多资料都是用于接收的,虽然对应教学视频讲了原因但总认同不了,如果发送也要用这个函数,为什么《网络实验4 RAW_TCP客户端实验》中的发送函数不调用这个tcp_recved()函数?
|
|
相关推荐
7个回答
|
|
在朱升林的《嵌入式网络那些事》这本书里面P478页有详细的说明:
问题:主机作为TCP服务器,开发板作为TCP客户端,链接建立后,客户端能正常发送数据到服务器,但是服务器确不能正常发送数据到客户端。 答:这是使用Raw/Callback API进行应用程序编写时最容易出现的问题,原因在于用户程序处理完接收到的数据后,没有调用函数tcp_recved更新接收窗口,是的主机上的数据时钟不满足发送的窗口条件,从而导致该方向上数据发送停止。在使用其它两种API编程时,用户不必理会接收窗口和发送窗口的状态,但是使用Raw/Callback API编程时,由于其本身就是基于内核函数编程的,因此也要求用户对内核的结构有一定的了解,即需要用户手动的更新接收窗口,通常在TCP控制块recv字段注册的回调函数中,用户在完成数据的处理后,必须调用tcp_recved更新接收窗口。 具体见下图: PS:说明在TCP_Client试验中也需要调用tcp_recved()函数,但是例程没有,应该是当初忘了写,请自行添加。关于LWIP源码与原理相关的详细信息,建议购买阅读《嵌入式网络那些事》这本书,此书是学习LWIP以及TCP/IP的不二之选! |
|
|
|
各位看官帮忙看看
|
|
|
|
路过 ~~~
|
|
|
|
别哇大哥,留点啥
|
|
|
|
顶起,顶起,各位大侠帮帮忙
|
|
|
|
多谢啦,大虾这下认同了百忙中为我解答万分感谢,受益匪浅,确实要买这本书好好钻研下了
|
|
|
|
大虾们都死了
|
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2543 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2331 浏览 5 评论
3155 浏览 3 评论
2801 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2759 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
607浏览 1评论
852浏览 0评论
965浏览 0评论
618浏览 0评论
445浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 00:25 , Processed in 1.171552 second(s), Total 60, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号