1

我正在构建一个应用程序,它使用 Bonjour 在同一个 wifi 网络上进行设备发现。我使用NSNetServiceandNSNetServiceBrowser它在一些 wifi 网络上运行良好(比如我的房子)。

问题是,它不适用于星巴克等一些公共 WiFi 网络。这些设备可以看到自己,但看不到彼此。我尝试设置自定义端口,例如 53453 甚至 443。我也让设备选择自己的端口,但没有任何效果。

有人能解释一下 WiFi 网络上的哪些内容会阻止设备互相看到吗?我有没有机会找到一个可以在这样的网络上工作的端口?

4

1 回答 1

1

Bonjour 建立在多播 DNS 之上。公共热点禁用多播流量是很常见的,这会导致您的应用程序无法看到其他实例。

当多播被禁用时,其他应用程序也会被破坏;iTunes 和 iPhoto 共享将遭受与这些网络上的应用程序相同的命运。

于 2013-06-02T06:19:36.680 回答