En bref: Comment découvrir de manière fiable un serveur exécutant quelque part sur un (probablement multisegment) réseau local avec zéro configuration clientCréer Windows (win32) Service découvrable à travers le réseau
Mon application cliente doit localiser l'application serveur sans connaître l'adresse IP du serveur. Il doit fonctionner sur un LAN local qui peut être divisé en segments avec des concentrateurs ou d'autres dispositifs de commutation.
J'ai déjà une solution de travail, mais c'est un peu compliqué de l'utiliser sur des réseaux multi-segments. Cela fonctionne comme suit:
Lorsque le client démarre, il envoie des diffusions UDP sur son propre segment de réseau. Si le serveur fonctionne sur le même segment, cela fonctionne sans problèmes - le serveur répond avec les messages appropriés. Si le serveur et le client s'exécutent sur des réseaux séparés par un concentrateur/commutateur qui ne transmettra pas UDP (le cas le plus probable), une instance de serveur est en cours d'exécution sur chaque segment et transmet les demandes des clients à chaque autre via TCP - mais j'ai besoin de configurer cela pour les instances de serveur (simple, mais toujours une douleur pour le support technique.) C'est le problème principal que je dois résoudre. Il y a des sites où nous avons des centaines de clients fonctionnant sur 5 ou 6 segments distincts. Les problèmes auxquels je suis confronté: 1. Bien que mon programme d'installation de l'application active les ports appropriés sur le pare-feu, parfois je rencontre des situations où cela ne semble pas se produire correctement. 2. Doit exécuter plusieurs instances de serveur (et donc les configurer et les maintenir) sur des réseaux concentrateurs/commutés qui ne transmettront pas UDP
Enfin, j'ai besoin d'une solution qui fonctionnera sans maintenance sur un réseau Windows minimal (XP/2000/Vista) qui n'a probablement pas Active Directory ou d'autres services de recherche configurés.
Je ne veux taguer aucun élément d'exécution pour cela - devrait être capable de le faire avec VC++ ou Delphi.
Quelles approches les applications commerciales utilisent-elles habituellement? Je sais que SQL Server utilise une combinaison d'appels broadcast et NetBEUI (je peux me tromper à ce sujet).
Merci d'avance.
peut-être y a-t-il un indice sur comment faire cela sur upnp.org? – djangofan