完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
请教下,关于lwip 轮询函数
tcp_poll(tPCB,tcp_echoclient_poll,1); //每秒中轮询2次,lwip最大一次只能够发送 1500-40 个字节,那么我如果一共有20MB字节的数据需要发送,该如何处理啊 ??? /* 轮询函数, */ static err_t tcp_echoclient_poll(void *arg, struct tcp_pcb *tpcb) { err_t ret_err; struct tcp_client_struct *es; es = (struct tcp_client_struct*)arg; if(es != NULL) //连接处于空闲可以发送数据 { if(ReadDataTxStatus()) //判断是否有数据要发送 { es->p=pbuf_alloc(PBUF_TRANSPORT, strlen((char*)tcp_client_sendbuf),PBUF_POOL); //申请内存 pbuf_take(es->p,(char*)tcp_client_sendbuf,strlen((char*)tcp_client_sendbuf)); //将tcp_client_sentbuf[]中的数据拷贝到es->p_tx中 tcp_echoclient_send(tpcb,es);//将tcp_client_sentbuf[]里面复制给pbuf的数据发送出去 CLIENT_DATA_SEND_CLEAR_FLAG; //清除数据发送标志 if(es->p)pbuf_free(es->p); //释放内存 } else if(es->state == ES_TCPCLIENT_CLOSING) { tcp_echoclient_connection_close(tpcb,es);//关闭TCP连接 } ret_err=ERR_OK; } else { tcp_abort(tpcb);//终止连接,删除pcb控制块 ret_err=ERR_ABRT; } return ret_err; } |
|
相关推荐
4个回答
|
|
把跟数据发送有关的从tcp_poll函数中提出来,专门做一个发送函数,然后直接调用这个发送函数发送!参考F429和F767开发板的例程,至于你的20M字节,分开发送啊!多发送几次不就行了。
|
|
|
|
|
|
大神 请问问题解决了吗?我现在也想把发送过程从回调函数中提取出来,但是不会提去啊?
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2444 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2217 浏览 5 评论
2979 浏览 3 评论
2671 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2638 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
420浏览 1评论
684浏览 0评论
759浏览 0评论
468浏览 0评论
277浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-22 20:22 , Processed in 0.989428 second(s), Total 84, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191