UDP 客户端不会在 esp32 上广播消息
UDP client doesn't broadcast message on esp32
所以我正在尝试通过 UDP 将数据包作为从一个 ESP32 到另一个 ESP32 的广播发送。接收方是access_point服务器,发送方是站和客户端。
我已经读过这个:ESP32 - 具有本机 LwIP 库的 UDP 广播/接收器
但这并没有帮助。我知道我的服务器可以工作,因为我可以通过终端发送包裹。但是对于客户端来说,软件包似乎并没有离开 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 返回写入的正确字节数。
我真的不知道了,感谢任何帮助。
所以我
发现了问题。实际上,插座没有问题。
我同时运行蓝牙和无线网络。在 esp32 上,两者共用一个天线。BT似乎获得了更高的优先级(我正在运行a2dp接收器(。并且wifi模块无法获取天线。因此问题来了。
可以在此处找到以下问题(也许是解决方案(:
获取 ESP32 天线的信号量(蓝牙/无线网络双模(
相关文章:
- boost::进程间消息队列引发错误
- 在线编译器中的分段C++没有打印消息
- C++错误消息*成员参考.**初学者*
- 在createdialog创建的窗口中捕获用于编辑控件的OnMouseMove消息
- 要与"if constexpr"一起使用的编译时消息(在预处理器之后)
- 如何通过参数抛出错误消息
- 从服务器传输到客户端的消息不会出现
- ROS2 动态消息模板
- 其中降频广播实际上是有用的
- C++秘密消息学校作业
- glad 导致 glfwSwapBuffers 返回错误消息
- C++入门 5 版:类消息和文件夹
- FindPackageHandleStandardArgs.cmake:137 的 CMake 错误(消息):找不到 Boost (缺少:正则表达式)(找到合适的版本"1.72.0",
- UDP 客户端不会在 esp32 上广播消息
- 将权限设置为在多个台式机上广播消息
- 如何在c++builder6中发送广播消息
- 广播消息供所有进程退出 (MPI)
- 用广播系统消息杀死旧进程
- asio:存储要广播的消息的最佳方式
- 具有单消息和广播的c++客户机/服务器应用程序