UDP 客户端不在 esp32 上广播消息
UDP client doesn't broadcast message on esp32
所以我正在尝试通过 UDP 将数据包作为广播从一个 ESP32 发送到另一个。接收者是一个access_point和服务器,发送者是一个站点和客户端。
我已经读过这个:
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
我跳过了检查。
但是一切都创建成功,发送到 returns 写入的字节数正确。
我真的不知道了感谢任何帮助。
所以我发现了问题。 socket其实没有问题
我同时有蓝牙和 wifi 运行。在 esp32 上,两者共用一根天线。似乎 BT 获得了更高的优先级(我是 运行 a2dp 接收器)。并且wifi模块无法获取天线。因此问题。
可在此处找到以下问题(可能还有解决方案):
acquire a semaphore for the esp32 antenna (bluetooth/wifi dualmode)
所以我正在尝试通过 UDP 将数据包作为广播从一个 ESP32 发送到另一个。接收者是一个access_point和服务器,发送者是一个站点和客户端。
我已经读过这个: 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
我跳过了检查。
但是一切都创建成功,发送到 returns 写入的字节数正确。
我真的不知道了感谢任何帮助。
所以我发现了问题。 socket其实没有问题
我同时有蓝牙和 wifi 运行。在 esp32 上,两者共用一根天线。似乎 BT 获得了更高的优先级(我是 运行 a2dp 接收器)。并且wifi模块无法获取天线。因此问题。
可在此处找到以下问题(可能还有解决方案):
acquire a semaphore for the esp32 antenna (bluetooth/wifi dualmode)