c++ - UDP 客户端不在 esp32 上广播消息
问题描述
所以我试图通过UDP发送数据包作为从一个ESP32到另一个的广播。接收者是接入点和服务器,发送者是站点和客户端。
我已经读过这个: ESP32 - UDP 广播/接收器与本地 LwIP 库
但这没有帮助。我知道我的服务器可以正常工作,因为我可以通过终端发送包裹。但对于客户来说,包裹似乎并没有离开 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模块无法获取天线。因此问题。
可以在此处找到以下问题(也许是解决方案):
推荐阅读
- sql - 使用sql server从数据库中选择值到另一个
- javascript - React 如何向现有状态添加新的动态密钥?
- python - 估计加载图像数据集可能使用多少 RAM
- reactjs - 将位置提交到服务器后,React-native post 方法 API 不显示任何数据
- outlook - 有什么方法可以使用 Microsoft API 在会议室中添加和获取设备?
- mysql - 在mysql中优化查询更有效
- django-rest-framework - 如何将渲染器连接到视图集中的特定端点,并且仅连接到该端点
- javascript - 使用keepSynced(true)清除firebase缓存不起作用
- reactjs - 如何检查expo react中的依赖版本
- linux - 如何在 bash 中刮取币安价格