Une bonne façon de publier et de trouver des services sur un réseau local en utilisant Python

StackOverflow https://stackoverflow.com/questions/4343575

Question

Mon application ouvre un socket TCP et attend les données d'autres utilisateurs sur le réseau en utilisant la même application. En même temps, il peut diffuser des données à un hôte spécifié sur le réseau.

À l'heure actuelle, je dois entrer manuellement l'adresse IP de l'hôte de destination pour pouvoir envoyer des données. Je veux être en mesure de trouver une liste de tous les hôtes exécutant l'application et ont le choix de l'utilisateur qui hébergent les données de la diffusion.

Bonjour Est / ZeroConf la bonne route pour aller à cette fin? (Je voudrais que ce multi-plateforme OSX / Win / * nix)

Était-ce utile?

La solution

  

il peut diffuser des données à un hôte spécifié sur le réseau

Ceci est un non sequitur.

Je présume que vous ne signifie pas réellement diffusion, vous voulez dire Unicast ou tout simplement "envoyer"?

  

Bonjour Est / ZeroConf la bonne route pour aller y parvenir?

Cela dépend vraiment de votre environnement cible et que votre application est destinée à faire.

Comme Ignacio indique, vous devez installer le logiciel d'Apple sous Windows pour Zeroconf / mDNS au travail au moment.

Cela peut convenir à petit bureau / usage domestique.


réseaux Cependant grandes sociétés peuvent couche 2 Multicast désactivée pour diverses raisons, à quel point votre application pourrait être en difficulté.

Si vous voulez travailler dans l'environnement de l'entreprise, puis une configuration est nécessaire, mais cela ne doit pas être fait au bord (dans les instances de client d'application).

peut-être via une option DHCP ou par des enregistrements de service DNS .. dans ce cas, vous seriez peut-être en train d'écrire un serveur requêtable pour le suivi des clients actifs .. un peu comme un Tracker BitTorrent.

Deux choses à considérer lors de la conception de votre application en réseau:

  • Y aurait-il jamais raison de courir plus d'une « installation » de votre application sur un réseau?
  • Vérifiez toujours les conséquences de versioning: Un client est plus à jour que l'autre, peuvent-ils encore parler les uns aux autres ou au moins ne pas gracieusement
scroll top