我正在编写一个 C++ 库,除其他外,它需要:
- 使用 AVAHI 在网络中搜索特定服务
- 使用 AVAHI 将自身发布为服务
我一直在寻找现有的选项。我发现 POCO C++ 的创建者提供了一个与 POCO C++ 集成的DNS-SD 库。那行得通,因为我实际上使用的是 POCO C++,但它是一个商业库,我买不起。
除此之外,avahi-daemon 提供了一个允许浏览服务和发布新服务的客户端界面。这听起来也不错,但我需要我的代码是可移植的,并且可以在主要的 Linux 发行版、Mac OS X 和 Windows 中工作。AFAIK,这个解决方案只涵盖 Linux(avahi-daemon 可用的地方)。
我想作为部分解决方案,我可以通过套接字发送格式正确的消息并处理原始响应。这样,我可以搜索使用 AVAHI 发布的服务。但我认为这是丑陋和不可维护的。
那么,在不购买软件的情况下,有没有足够好的解决方案呢?我知道这可以使用 Python 来完成,但我需要用 C++ 来完成。
提前谢谢了