2013-05-26 2 views
1

Je crée une application qui utilise Bonjour pour la découverte de périphériques sur le même réseau wifi. J'utilise NSNetService et NSNetServiceBrowser et cela fonctionne très bien sur certains réseaux wifi (comme ma maison).Bonjour échoue sur le Wifi public

Le problème est, il ne fonctionne pas sur certains réseaux WiFi publics comme Starbucks. Les appareils se voient, mais pas les uns les autres. J'ai essayé de définir des ports personnalisés comme 53453 ou même 443. J'ai également laissé les périphériques choisir leurs propres ports, mais rien ne fonctionne.

Quelqu'un pourrait-il expliquer ce qui est verrouillé sur le réseau WiFi qui empêche les appareils de se voir? Y at-il une chance que je puisse trouver un port qui fonctionnerait sur des réseaux comme celui-ci?

+0

De nombreux points d'accès Wi-Fi offrent la possibilité de bloquer intentionnellement les clients de la communication entre eux (horizon partagé). Le réseau wifi en question utilise peut-être une telle option? Testez en vérifiant si deux clients sur le même réseau peuvent au moins s'animer. – Celada

Répondre

1

Bonjour est construit sur le DNS multicast. Il est très fréquent que les points d'accès publics désactivent le trafic de multidiffusion, ce qui empêcherait votre application de voir d'autres instances.

D'autres applications seront également brisées lorsque la multidiffusion est désactivée; Le partage iTunes et iPhoto subira le même sort que votre application sur ces réseaux.

Questions connexes