IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Plateformes (Java EE, Jakarta EE, Spring) et Serveurs Discussion :

Recherche d'adresse IP utilisé


Sujet :

Plateformes (Java EE, Jakarta EE, Spring) et Serveurs

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Recherche d'adresse IP utilisé
    Bonjour à tous !

    Je me suis lancé dans la conception d'un chat pour un réseau local. Mon implémentation est relativement simple puisque un des ordinateurs du réseau sera le serveur (ça ne sera pas toujours le même ordinateur) et les autres ordinateurs viendront se connecter dessus. Pour se faire, j'ai dédié le serveur créera un thread par client connecté et chaque client aura un thread en local, afin de réaliser les échanges.
    Mon but était également de faire en sorte que, si une personne lance le chat, le programme vérifie si un serveur existe déjà sur le réseau. Si c'est le cas, le client se connecte, si ce n'est pas le cas, le client sera lui-même le serveur.
    Cependant, j'ai un petit problème quand je souhaite rechercher les adresses IP qui sont utilisés sur le réseau. En effet, j'ai essayé une méthode "brute" où j'essayais de me connecter au serveur avec une adresse IP quelconque et si la connexion échouait, j'essayais avec une autre. Mais le problème était que ce fut très long et que j'avais énormément d'erreur, ce qui est normal en soit.
    En fouillant dans l'API Java, j'ai remarqué que InetAddress possédait une méthode isReachable qui me permettait de voir si l'adresse était prise ou non, ce qui me permettait d'effectuer un premier tri. Cependant, pour que cette méthode me renvoie une réponse correcte, je devais lui donner un timeout de 1500 ms. Or, j'ai à peu près 40 adresse à tester, ce qui fait que le temps de recherche est relativement élevé. J'ai donc pensé à un système où je lancerais un thread par adresse IP à tester afin de réaliser toutes les vérifications en parallèle.
    J'ai effectué cela ce matin et j'ai remarqué que cela n'améliorait rien au temps de recherche. J'en ai plus ou moins conclu que c'était du au fait que même si les threads s'effectuaient en parallèle, je ne pouvais tester qu'une adresse à la fois.
    D'où ma question : quelqu'un aurait-il une idée pour améliorer la vitesse de détection des adresses IP utilisé sur le réseau ?

    Merci d'avance !

    Adrien

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    LE plus simple, je pense serait d'utiliser un système de broadcast.

    Principe :
    - ton client démarre et envoie sur le réseau un message en broadcast (udp donc et à tous le monde) pour demander qui est le serveur.
    - Il obtient une réponse, il considère donc l'ip qui lui répond comme étant le serveur.
    - il n'obtient pas de réponse. Il s'autoproclame serveur et met en place ce qu'il faut pour pouvoir répondre aux messages broadcast ultérieurs qui demanderais qui est le serveur.

    Cela te fait une seule requete sur le réseau, ne prend le temps que d'un timeout.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Effectivement, ça me parait plus simple et plus rapide ! J'y avais pas pensé.

    Merci beaucoup pour ton aide !

Discussions similaires

  1. [OpenOffice] recherche a exploiter dicotionnaire utilisé par openOffice
    Par megaloplex dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 31/07/2010, 13h53
  2. Recherche tuto gtk sans utilisé de liste chainé
    Par grex1 dans le forum GTK+ avec C & C++
    Réponses: 10
    Dernier message: 09/02/2010, 16h09
  3. Rechercher l'adresse d'une cellule..
    Par amerex dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 04/12/2007, 02h49
  4. recherche d'adresse MAC
    Par doudou1 dans le forum VBScript
    Réponses: 2
    Dernier message: 08/03/2007, 21h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo