gpt4 book ai didi

c++ - UDP 客户端不在 esp32 上广播消息

转载 作者:行者123 更新时间:2023-11-30 16:18:44 30 4
gpt4 key购买 nike

所以我尝试通过 UDP 将数据包作为广播从一个 ESP32 发送到另一个。接收方是接入点和服务器,发送方是站点和客户端。

我已经读过这个: ESP32 - UDP broadcaster/ receiver with native LwIP library

但这并没有帮助。我知道我的服务器可以正常工作,因为我可以通过终端发送包裹。但对于客户端来说,这些包似乎没有离开 esp。

我的代码:

// CLIENT: 

sockaddr_in _send_addr;
_send_addr.sin_family = AF_INET,
_send_addr.sin_port = htons( 5000 );
// also tried local broadcast 192.168.4.255
_send_addr.sin_addr.s_addr = inet_addr( "255.255.255.255" );
_send_addr.sin_len = sizeof( _send_addr );


int _sock;
_sock = socket( AF_INET, SOCK_DGRAM, IPPROTO_IP );

int broadcast = 1;
setsockopt( _sock, SOL_SOCKET, SO_BROADCAST, &broadcast, sizeof(broadcast) );

void* data; // has some length
size_t len; // len of data
sendto( _sock, data, len, 0, (const struct sockaddr*) &_send_addr,
sizeof(_send_addr) );

// SERVER:
// server is bound to same port, and to ip "0.0.0.0"
// like I said normally the server shouldn't be the problem, cause he received already

我跳过了检查。

但是一切都已成功创建,并且 sendto 返回正确的写入字节数。

我真的不知道有什么帮助了。

最佳答案

所以我发现了问题。其实socket没有问题。

我同时运行蓝牙和 WiFi。在 esp32 上,两者共享一根天线。看起来 BT 获得了更高的优先级(我正在运行 a2dp 接收器)。并且wifi模块无法获取天线。这就是问题所在。

可以在这里找到以下问题(也许还有解决方案):

acquire a semaphore for the esp32 antenna (bluetooth/wifi dualmode)

关于c++ - UDP 客户端不在 esp32 上广播消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55831612/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com