De trouver le serveur à l'écoute sur un port spécifique sur le réseau local

J'ai un serveur d'application. J'ai aussi une application client. Je suis en mesure d'établir une connexion tcp entre les applications lorsque les deux applications se trouvent sur le même réseau. donc, disons que l'ordinateur exécutant le serveur d'applications est à l'écoute de nouvelles connexions sur le port 2121 et il a l'adresse ip LAN 192.168.0.120. Sur un autre ordinateur exécutant l'application cliente, je vais être en mesure d'établir une connexion en fournissant le numéro de port 2121 et l'adresse ip 192.168.0.120.

Est-il un moyen de trouver tous les ordinateurs sur un réseau qui sont à l'écoute sur le port 2121?

Un algorithme que je pense maintenant, c'est comme:

  • obtenir l'adresse ip de l'ordinateur actuel et permet de dire qu'il ne sort qu'à 192.168.0.145.

  • maintenant plus probable que le serveur sera à l'écoute sur l'adresse ip 192.168.0.?

  • puis ping 192.168.0.1 sur le port 2121 puis 192.168.0.2 sur le port 2121 ... et puis continuer.

Je ne sais pas si cette méthode est efficace. en outre, il pourrait y avoir une possibilité que le serveur arrive à être à l'écoute sur l'adresse ip 192.168.1.x

Donc quels changements je dois faire pour mon serveur et client de l'application, de sorte que le client est en mesure de trouver tous les serveurs à l'écoute sur le port 2121?

Êtes-vous à l'aide de la WCF pour des communications et de l' .NET 4 ?
Pourquoi voulez-vous trouver tous les serveurs? Pourquoi avez-vous encore besoin de plus d'un? En raison de l'équilibrage de charge? Ou comme une copie de sauvegarde, lorsque l'un d'eux est en panne?
J'ai cette application là où je suis en mesure de synchroniser des fichiers entre ordinateurs. peut-être que quelqu'un d'autre utilise mon application et de deux serveurs sont sur le même réseau. J'ai juste envie de faire simple pour que les utilisateurs soient en mesure de localiser le serveur...

OriginalL'auteur Tono Nam | 2011-09-02