登录注册
论坛
一粒金砂(中级)
18
0
扫一扫,分享给好友
纯净的硅(中级)
918
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);
155
28
发表回复 回帖后跳转到最后一页
EEWorld Datasheet 技术支持
查看 »