完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
当UART有数据后,Tcp服务器会获取发送到TCP客户端的数据。我们无法知道 UART 数据的数量,in.so porj Tcp 发送的数据将被发送到 erverone 数据。
1,uartTaskRecv 将一如既往地运行 100us 2、uartTaskRecv 发送的数据uart_tx_one_char正常,无丢失数据。 问题: 1、为什么TCP发送数据丢失 2,how to use "espconn_regist_write_finish" to write buffer? 法典: sint8 ICACHE_FLASH_ATTR UartEspconSendData(uint8 *pdata,uint32 Len) { return(espconn_send(&TcpConfig,pdata,Len)); } LOCAL void ICACHE_FLASH_ATTR uartTaskRecv(void) { uint8_t tmpdata,err; tmpdata = uartTaskGetChar(&err); if(err == COMM_NO_ERR){ if(tmpdata != 'n'){ uart_tx_one_char(0,tmpdata); UartespconsendData(TMPdata,1); //os_printf("112233445566778899rn"); espconn_send(); }else{ os_printf("AABBCCDDEErn"); uart_tx_one_char(0,'n'); } } } |
|
相关推荐
1个回答
|
|
TCP服务器发送数据丢失的原因可能有以下几点:
1. **网络延迟**:在数据传输过程中,网络延迟可能导致数据包在传输过程中丢失或延迟到达。 2. **数据包大小**:如果发送的数据包过大,可能会导致数据在传输过程中丢失。可以尝试将数据分成较小的数据包进行发送。 3. **TCP连接不稳定**:TCP连接可能因为某些原因(如网络故障、服务器故障等)而断开,导致数据传输中断。 4. **缓冲区溢出**:如果发送的数据量超过了接收端的缓冲区容量,可能会导致数据丢失。 5. **数据传输速率不匹配**:发送端和接收端的数据传输速率不匹配,可能导致数据在传输过程中丢失。 关于如何使用 "espconn_regist_write_finish" 来写入缓冲区,以下是一些建议: 1. **注册写入完成回调函数**:首先,需要注册一个写入完成回调函数,以便在数据发送完成后执行相应的操作。 ```c espconn_regist_write_finish(&TcpConfig, your_write_finish_callback); ``` 2. **实现写入完成回调函数**:实现一个回调函数,当数据发送完成后,可以在这个函数中执行一些操作,例如释放缓冲区、发送下一批数据等。 ```c void ICACHE_FLASH_ATTR your_write_finish_callback(void *arg) { struct espconn *pesp_conn = (struct espconn *)arg; if (pesp_conn != NULL) { // 执行一些操作,例如释放缓冲区、发送下一批数据等 } } ``` 3. **发送数据**:在发送数据时,可以使用 `espconn_send` 函数将数据发送到TCP客户端。 ```c sint8 ICACHE_FLASH_ATTR UartEspconSendData(uint8 *pdata, uint32 Len) { return espconn_send(&TcpConfig, pdata, Len); } ``` 4. **处理发送完成**:在数据发送完成后,`your_write_finish_callback` 回调函数会被调用,可以在这个函数中处理发送完成的相关操作。 通过以上步骤,可以确保在TCP服务器发送数据时,能够正确地处理数据发送完成的情况,并减少数据丢失的可能性。同时,也可以考虑在发送数据时,对数据进行分包处理,以降低数据丢失的风险。 |
|
|
|
只有小组成员才能发言,加入小组>>
982 浏览 1 评论
553浏览 6评论
463浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
447浏览 5评论
448浏览 4评论
420浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 04:26 , Processed in 0.551837 second(s), Total 49, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号