我正在构建一个使用 Bonjour 在同一 wifi 网络上发现设备的应用程序。我使用 NSNetService
和 NSNetServiceBrowser
,它在某些 wifi 网络(比如我家)上运行良好。
问题是,它不适用于某些公共(public) WiFi 网络,例如星巴克。这些设备看到自己,但看不到对方。我试过设置自定义端口,例如 53453 甚至 443。我也让设备选择它们自己的端口,但没有任何效果。
谁能解释一下 WiFi 网络上的锁定是什么阻止了设备相互通信?我有没有可能找到一个可以在这样的网络上工作的端口?
最佳答案
Bonjour 建立在多播 DNS 之上。公共(public)热点禁用多播流量是很常见的,这会导致您的应用程序无法看到其他实例。
禁用多播时,其他应用程序也会被破坏; iTunes 和 iPhoto 共享将遭受与您在这些网络上的应用程序相同的命运。
关于ios - Bonjour 在公共(public) Wifi 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16764721/