c++ - 我如何使用 C++ 创建 AVAHI 客户端和服务器?

标签 c++ multiplatform avahi

我正在编写一个 C++ 库,除其他外,它需要:

  • 使用 AVAHI 在网络中搜索特定服务
  • 使用 AVAHI 将自身发布为服务

我一直在寻找现有的选择。我发现 POCO C++ 的创建者提供了一个 DNS-SD library与 POCO C++ 集成。那行得通,因为我实际上使用的是 POCO C++,但它是一个商业库,我买不起。

除此之外,avahi-daemon 还提供了一个客户端接口(interface),允许 browsing服务和publishing新的。这听起来也不错,但我需要我的代码是可移植的,并且可以在主要的 Linux 发行版、Mac OS X 和 Windows 中工作。据我所知,此解决方案仅适用于 Linux(avahi-daemon 可用)。

我想作为部分解决方案,我可以通过套接字发送格式正确的消息并处理原始响应。这样,我就可以搜索使用 AVAHI 发布的服务。但我认为这很丑陋且无法维护。

那么,有没有不用购买软件就能解决这个问题的好办法呢?我知道this can be done using Python ,但我需要用 C++ 来完成。

提前致谢

最佳答案

有一个开源库(在 LGPL 下发布)在 http://avahi.org/ 上可用。 .它公开了一个可以非常容易地在 C++ 程序中使用的 C 接口(interface)。

还有适用于所有主要发行版的预构建二进制版本。

关于c++ - 我如何使用 C++ 创建 AVAHI 客户端和服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22987773/

相关文章:

c++ - 可变参数模板的模板特化

c++ - HP-35计算器基本功能代码

testing - kotlin 多平台覆盖?

linux - 使用 sed 从列表中删除 IPv6 地址

c++ - 什么样的语言特性适用于只有几行不同的类似功能?

c++ - 如何独立于所用机器测量性能

Java:打开文件 (Windows + Mac)

programming-languages - 是否可以编写不是用 Java 编写的多平台程序

dns - 转储 Avahi & Bonjour、DNS-SD 区域文件

linux - Avahi 主机名解析 : Is it caching somewhere?