ios - Bonjour 在公共(public) Wifi 上失败

标签 ios sockets bonjour

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

问题是,它不适用于某些公共(public) WiFi 网络,例如星巴克。这些设备看到自己,但看不到对方。我试过设置自定义端口,例如 53453 甚至 443。我也让设备选择它们自己的端口,但没有任何效果。

谁能解释一下 WiFi 网络上的锁定是什么阻止了设备相互通信?我有没有可能找到一个可以在这样的网络上工作的端口?

最佳答案

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

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

关于ios - Bonjour 在公共(public) Wifi 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16764721/

相关文章:

ios - 未发现 Xcode swift 测试

ios - 根据其他开关状态将开关关闭或打开

ios - Facebook iOS SDK : Multiple Facebook apps for different environments

ios - 播放其他应用程序的音频

c - 套接字应用程序无法接收 tcpreplay 发送的数据包

c# - 客户端服务器套接字C#通信

iphone - Bonjour 通过蓝牙无需 Gamekit ?

android - 如何在 Android 上发现 zeroconf (Bonjour) 服务?我在使用 jmDNS 时遇到问题

Java Socket 连接被我的公共(public) IP 拒绝

erlang - 如何在 Erlang 中发送多播消息并重用端口?