你好,我在使用CC3235SF作为STA向PC端发送UDP数据,数据量大约2.7Mbps。当我的设备数量增加到5~8个时,工作很短一段时间(大约几十秒到几分钟),就会出现一次发送失败的问题,sl_SendTo()函数返回值是-2005。但如果只有两到三台设备时,这个错误发生的概率就会小得多,往往几十分钟都不发生。我的问题是:
1、这个-2005的错误码,是什么引起的?
2、在出现这个错误码后,我应该怎么处理?如何让设备从错误中恢复过来,继续工作?
谢谢!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
你好,我在使用CC3235SF作为STA向PC端发送UDP数据,数据量大约2.7Mbps。当我的设备数量增加到5~8个时,工作很短一段时间(大约几十秒到几分钟),就会出现一次发送失败的问题,sl_SendTo()函数返回值是-2005。但如果只有两到三台设备时,这个错误发生的概率就会小得多,往往几十分钟都不发生。我的问题是:
1、这个-2005的错误码,是什么引起的?
2、在出现这个错误码后,我应该怎么处理?如何让设备从错误中恢复过来,继续工作?
谢谢!
当你在两个不同任务(线程)中分别处理UDP的接收和发送时,并且接收任务使用阻塞模式,这确实可能引发一些问题,尤其是在高数据量和多设备环境下。比如阻塞接收导致,阻塞接收会阻止接收任务释放CPU给其他任务,包括发送任务。当发送任务长时间得不到执行时,它可能会错过发送窗口或超时,导致发送失败。
另外也存在资源争用:虽然UDP发送和接收在逻辑上是分开的,但它们仍然共享系统资源,如CPU时间、内存和套接字缓冲区。在高并发情况下,这些资源的争用可能导致发送或接收失败。