使用 dns-sd 进行服务发现

Service discovery using dns-sd

我有一个配置为站模式的设备。设备通过 smartphone 提供的热点连接到 smartphone。设备需要搜索应用程序在 smartphone 上发布的服务 say _abc._tcp.

我正在使用命令 dns-sd -B _abc._tcp 但没有输出。 请指导我可能遗漏的内容。

应用程序发布服务。我在 android 上使用 Bonjour 应用程序验证了它。

另请说明

  1. 是否可以在站模式下发现服务。
  2. 搜索服务时是否需要提供完整的服务名称。如果不是我们如何发现智能上发布的所有服务 phone
  3. 设备上的防火墙设置会影响服务发现吗?
  4. 我们如何在 C++ 中实现相同的功能。任何可以帮助发现的图书馆。

提前致谢。

Is it possible to discover the services while in station mode.

station mode

While searching for services is it necessary to provide complete service name.

If not how we can discover all the services published on the smart phone

服务发现旨在用于发现您正在寻找的服务,例如打印机或网页。 您可能使用的一种解决方案是查找所有服务并查询该服务的每个实例。每个实例都有一个名称和一个 ip,您可以将其与 phone 的 ip 进行比较。好吧,我觉得这很丑。

Can firewall settings on device affect for service discovery?

How can we achieve the same in C++. Any libraries which can help in discovering.

几乎每种语言都有库...在您最喜欢的搜索引擎中搜索 c++ 服务发现,您会发现很多(或另一个链接到一个或多个的 so-thread)

Codewing已经给出答案

添加到以上答案。

Can firewall settings on device affect for service discovery?

是的。服务发现也可以发生在多个接口(wlan0、eth0 ...)上。 这些接口也会影响服务发现。要检查这个 dns 配置文件可以检查。在我的例子中,接口 wlan 在配置文件中被禁用,所以我无法发现服务。