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

How could I create an AVAHI client & server using C++?

本文关键字:服务器 客户端 AVAHI 何使用 C++ 创建      更新时间:2023-10-16

我正在编写一个C++库,它需要:

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

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

除此之外,avahi守护进程还提供了一个客户端接口,允许浏览服务和发布新服务。这听起来也不错,但我需要我的代码是可移植的,并在主要的Linux发行版、Mac OS X和Windows中工作。AFAIK,这个解决方案将只覆盖Linux(其中avahi守护进程可用)。

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

那么,在不购买软件的情况下,有足够好的解决方案吗?我知道这可以用Python来完成,但我需要用C++来完成。

提前感谢

在http://avahi.org/.它公开了一个可以在C++程序中非常容易地使用的C接口。

所有主要发行版都有预构建的二进制版本。