ESP32C6作为UDP Server,使用recvfrom无法及时收到第一帧报文

digitix
Posts: 2
Joined: Thu Nov 23, 2023 12:43 am

ESP32C6作为UDP Server,使用recvfrom无法及时收到第一帧报文

Postby digitix » Thu Nov 23, 2023 1:02 am

基于esp32-c6 及 espressif 5.1 在vscode esp插件环境下进行开发

我使用esp32-c6作为WiFi AP,当有STA接入且通过DHCP为其分配了IP地址后,AP会创建一个udp socket作为server等待接收来自客户端的UDP报文,AP成功创建socket后调用recvfrom()阻塞等待接收报文。

在测试时发现,AP在接收来自STA的第一帧UDP报文时recvfrom()无法及时返回结果,通常在STA发送第一帧报文几百毫秒之后,recvfrom()才能返回,且这个时间并不固定,在100-800ms之间。在成功接收了第一帧报文以后,后续来自STA的报文AP都能够及时地收到。

即使我将recvfrom()改为非阻塞接收,采用持续循环的方式去尝试接收第一帧UDP报文,也无法及时地收到,延迟时间仍然是几百毫秒。

我想要知道第一帧报文无法及时接收的原因是什么,以及如何解决这一问题,非常感谢。

Who is online

Users browsing this forum: Bing [Bot] and 61 guests