2013-05-26 33 views
1

我正在构建一个应用程序,它使用Bonjour在同一个wifi网络上进行设备发现。我使用NSNetServiceNSNetServiceBrowser,它在一些无线网络(如我的房子)上工作正常。Bonjour在公共Wifi上失败

问题是,它不适用于像星巴克这样的公共WiFi网络。设备看到自己,但不是彼此。我已经尝试设置自定义端口,如53453甚至443。我也让设备选择自己的端口,但没有任何作用。

有人可以解释什么是锁定在WiFi网络,防止设备看到对方?有没有机会找到可以在这样的网络上工作的端口?

+0

许多wifi接入点有一个选项可以有意阻止客户端彼此通信(水平分割)。有问题的WiFi网络可能使用这样的选项?通过检查同一网络上的2个客户端是否至少可以互相ping通来测试。 – Celada

回答

1

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

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