专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
请问以太网收数据时那个tcp_receive如何操作收到的数据?
2019-03-24 15:42
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
TI MCU
4277
8
1474
如题,tcp_receive()传入的参数只有一个pcb,那怎么操作缓冲区里收到的数据,调用什么?谢谢! 此帖出自
小平头技术问答
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
suguoliu
2019-03-25 23:11
tcp_recv(pcb,App_recv);
tcp_recv()本身不是实际处理接收数据的函数,它需要指定一个应用层的接收数据函数(这里假如为App_recv,需要自己依据应用来编写)来处理接收到的数据。
p->payload字段中存储了数据。数据存放在这里。
处理完了之后要pbuf_free(p);
app_recv(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err)
第一步:申明一个结构体,此结构体表征应用程的一些状态。
第二步:将回调函数的参数的指针arg赋值给该结构体。
第三步:调用tcp_recved(pcb, p->tot_len);确认数据的接受,其中包括了更新接收窗口。
第四步:对接收到的p->payload字段中数据进行提取,保存或其发送等等其它处理。
第五步:释放pbuf占用的rx buffer, pbuf_free(p);
第六步:tcp_sent(pcb, App_sent
这些同样适用于udp_recv函数,对吧?
加载中...
查看其它8个回答
一周热门
更多
>
相关问题
相关文章
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
tcp_recv()本身不是实际处理接收数据的函数,它需要指定一个应用层的接收数据函数(这里假如为App_recv,需要自己依据应用来编写)来处理接收到的数据。
p->payload字段中存储了数据。数据存放在这里。
处理完了之后要pbuf_free(p);
app_recv(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err)
第一步:申明一个结构体,此结构体表征应用程的一些状态。
第二步:将回调函数的参数的指针arg赋值给该结构体。
第三步:调用tcp_recved(pcb, p->tot_len);确认数据的接受,其中包括了更新接收窗口。
第四步:对接收到的p->payload字段中数据进行提取,保存或其发送等等其它处理。
第五步:释放pbuf占用的rx buffer, pbuf_free(p);
第六步:tcp_sent(pcb, App_sent
这些同样适用于udp_recv函数,对吧?
一周热门 更多>