完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在尝试使用 wifi_send_pkt_freedom 系统发送用户生成的 802.11 数据包,但无法成功发送数据包。 回调已成功注册到 wifi_register_send_pkt_freedom_cb,但wifi_send_pkt_freedom返回 -1,并且永远不会调用 freedom_outside_cb_t 函数。 使用 wireshark 和专用 wifi 适配器监控频道时看不到任何数据包。 信标数据包示例包括:
/* 帧(255 字节) */ uint8_t beacon[255] = { 0x00、0x00、0x1a、0x00、0x2f、0x48、0x00、0x00、/* ../H..*/ 0xd7、0xf2、0xa9、0x91、0x00、0x00、0x00、0x00、/* ........ */ 0x10、0x02、0x6c、0x09、0xc0、0x00、0xc8、0x00、/* ..l..... */ 0x00、0x00、0x80、0x00、0x00、0x00、0xff、0xff、/* ........ */ 0xff、0xff、0xff、0xff、0x02、0x03、0x04、0x05、/* ........ */ 0x06、0x07、0x02、0x1a、0x11、0xfa、0x05、0x6d、/* .m.....m */ 0xa0、0xfe、0x87、0xd1、0xcd、0x3d、0x01、0x00、/* .....=..*/ 0x00、0x00、0x64、0x00、0x11、0x05、0x00、0x14、/* ..d..... */ 0x48、0x45、0x4C、0x4C、0x4F、0x5F、0x57、0x4F、/* HELLO_WO */ 0x52、0x4C、0x44、0x5F、0x54、0x45、0x53、0x54、/* RLD_TEST */ 0x5F、0x4E、0x55、0x4D、0x01、0x08、0x82、0x84、/* _NUM.... */ 0x8b、0x96、0x24、0x30、0x48、0x6c、0x03、0x01、/* ..000万美元。*/ 0x01、0x05、0x04、0x01、0x02、0x00、0x00、0x07、/* ........ */ 0x06, 0x51, 0x32, 0x20, 0x01, 0x0b, 0x1e, 0x20, /* .Q2 ... */ 0x01、0x00、0x23、0x02、0x12、0x00、0x2a、0x01、/* .. 0x00、0x2f、0x01、0x00、0x30、0x14、0x01、0x00、/* ./..0... */ 0x00、0x0f、0xac、0x04、0x01、0x00、0x00、0x0f、/* ........ */ 0xac、0x04、0x01、0x00、0x00、0x0f、0xac、0x02、/* ........ */ 0x0c、0x00、0x32、0x04、0x0c、0x12、0x18、0x60、/* ..2....' */ 0x2d、0x1a、0x2d、0x11、0x17、0xff、0x00、0x00、/* -.-..... */ 0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、/* ........ */ 0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、/* ........ */ 0x00、0x00、0x00、0x00、0x3d、0x16、0x01、0x08、/* ....=... */ 0x15、0x00、0x00、0x00、0x00、0x00、0x00、0x00、/* ........ */ 0x00、0x00、0x00、0x00、0x00、0x00、0x00、0x00、/* ........ */ 0x00、0x00、0x00、0x00、0x7f、0x08、0x04、0x00、/* ........ */ 0x00、0x00、0x00、0x00、0x00、0x40、0xdd、0x09、/* .....@..*/ 0x00、0x10、0x18、0x02、0x01、0x00、0x1c、0x00、/* ........ */ 0x00、0xdd、0x18、0x00、0x50、0xf2、0x02、0x01、/* ....P...*/ 0x01、0x80、0x00、0x03、0xa4、0x00、0x00、0x27、/* .......' */ 0xa4、0x00、0x00、0x42、0x43、0x5e、0x00、0x62、/* ...BC^.b */ 0x32, 0x2f, 0x00, 0xa1, 0xaa, 0x93, 0xa7 /* 2/..... */ }; 并使用以下方式进行设置 int 结果 = wifi_send_pkt_freedom(信标, 255, 真); os_printf("tResult => %d ...n", result); |
|
相关推荐
1个回答
|
|
可能存在以下几个原因导致无法成功发送数据包:
1. **权限问题**:确保您的应用程序具有发送数据包所需的权限。在 Android 上,这可能涉及到使用 `ACCESS_WIFI_STATE` 和 `CHANGE_WIFI_MULTICAST_STATE` 权限。 2. **数据包格式问题**:检查您的数据包格式是否正确。确保它符合 802.11 标准,包括正确的帧类型、地址字段等。 3. **注册回调问题**:确保您已经正确注册了回调函数。如果回调函数没有被正确注册,那么即使数据包发送成功,您也不会收到回调通知。 4. **驱动支持问题**:确保您的 Wi-Fi 驱动支持 `wifi_send_pkt_freedom` 功能。不同的硬件和驱动可能对这一功能的支持程度不同。 5. **硬件问题**:确保您的 Wi-Fi 适配器处于正确的模式(如监控模式),以便能够发送自定义数据包。 6. **系统限制**:某些系统可能对发送数据包有限制,例如限制发送速率或特定的数据包类型。 7. **错误处理**:检查 `wifi_send_pkt_freedom` 返回的错误代码,这可能会提供一些关于为什么发送失败的线索。 8. **调试和日志**:增加日志输出,以便更好地了解在发送过程中发生了什么。这可能包括检查数据包是否被正确构造和发送。 9. **Wi-Fi 状态**:确保 Wi-Fi 是开启的,并且设备已经连接到一个网络。某些操作可能需要设备处于连接状态。 10. **代码实现问题**:检查您的代码实现是否有逻辑错误或遗漏,例如是否正确处理了所有必要的步骤。 |
|
|
|
只有小组成员才能发言,加入小组>>
1118 浏览 1 评论
574浏览 6评论
477浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
461浏览 5评论
461浏览 4评论
435浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 16:54 , Processed in 0.820976 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191