【问题标题】:which c/c++ library can be used for handling wifi connections for linux?哪个 c/c++ 库可用于处理 linux 的 wifi 连接?
【发布时间】:2022-02-12 22:41:35
【问题描述】:

我想实现 WiFi 管理器程序,它应该处理以下内容。

  • 关于 wi-fi 接入点的通知来了还是去了
  • 提供可用 wifi 接入点的信息
  • 与给定的 wi-fi 接入点连接/断开连接

为了实现这一点,推荐用于 Linux 的 C/C++ WiFi 库是什么?

【问题讨论】:

    标签: c++ c linux wifi


    【解决方案1】:

    在 Fedora 上(至少),与 NetworkManager 交互的首选方式是通过 DBus。

    虽然无线工具和类似工具可以工作——甚至直接内核调用,如果必须的话——有几个问题:

    • 您可能需要超级用户权限
    • NetworkManager 可能会惊恐发作并与您发生争执,除非您停止其服务
    • 用户的正常网络控件(例如桌面托盘图标)几乎可以肯定配置为使用 NetworkManager。

    您可以为您提到的所有任务、WiFi 以及任意其他类型的网络接口发送和接收 DBus 消息。 API 已发布here, for version 0.8

    对于较新的操作系统,显然有changes in the API, with a migration guide

    他们的wiki 应该很有帮助。

    我知道 Fedora 和 Ubuntu 默认都使用 NetworkManager;我相信许多其他系统也是如此,但没有详尽的列表。

    当然,如果您使用的是嵌入式系统、自定义发行版或其他东西,那么您的里程可能会有所不同。

    【讨论】:

    • 这个答案对于需要WiFi控制但负担不起DBus的基础设施价格,又不使用网络管理器的低功耗嵌入式项目来说是不够的。
    • 是的,但这不是问题中指定的内容。
    【解决方案2】:

    那就是wireless-tools

    【讨论】:

      【解决方案3】:

      我建议直接使用NetworkManager Library

      您可以使用低级 D-Bus 库或 libnm-glib 库,这使通信更容易:example add connection glib

      更多信息,您可以查看命令行客户端nmcli的代码。

      【讨论】:

        猜你喜欢
        • 2011-07-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-01
        相关资源
        最近更新 更多