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

Java Discussion :

Programme client serveur


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 262
    Par défaut Programme client serveur
    bonsoir.
    en faite je développe une application clients/serveur.

    et pour chaque client qui se connecte au serveur j’instancie un thread qui communique avec ce client.

    le problème que chaque fois un client se connecte au serveur , le serveur instancie un nouveau thread , mais en vérité le serveur doit se comporter autrement lorsqu'il s'agit d'un client qui s'est deja connecté.

    je donne un exemple pour clarifier ma question:

    un serveur qui réponds a des clients , au départ chaque client se connecte via les socket, le serveur crée pour chaque client un thread afin de communiquer séparément.

    supposant que 3 clients se sont connecté au serveur, le client 1 se connecte une deuxième fois au serveur, cette fois le serveur ne doit pas instancié un nouveau thread (mon programme là instancie un nouveau thread malgré que le client s'est déjà connecté avant), comment faire en sorte que le serveur puisse reconnaitre ses clients.

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par momedalhouma Voir le message
    comment faire en sorte que le serveur puisse reconnaitre ses clients.
    Ben justement c'est ton problème. Tu pourrais par exemple inventer un système de numéros de sessions uniques, et quand un client se reconnecte, il donne le numéro de sa session précédente.

    Par ailleurs je vois pas trop l'intérêt de vouloir forcément réutiliser un thread au lieu d'en créer un autre.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 262
    Par défaut
    merci pour la réponse.

    bon la raison c'est que je veux qu'après la déconnexion du client c'est soit tuer le thread qui a communiqué avec le client soit faire comme j'ai dit avant.

    comme ça on aura pas des thread qui consomme la mémoire même s'il y a pas de clients connectés.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Je vois pas en quoi ton idée soulage la mémoire. Si les threads sont inutilisés ils seront virés de la mémoire bien sûr.

    Et si tu veux garder "comme tu as dit avant," c'est pas de réutiliser des threads qui va faire la différence. D'une manière ou d'une autre, "comme tu as dit avant" devra forcément être en mémoire ou dans une base de données.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2003
    Messages : 69
    Par défaut
    Si tu veux améliorer les performances de ton serveur, il faut renoncer à créer un thread par client qui se connecte et utiliser à la place un pool de threads de taille fixe qui traite les demandes des clients une par une. Par ce biais, tu évites toute création/destruction de threads après le lancement du programme et tu ne risques pas de manquer de mémoire si trop de clients se connectent en même temps.

    Tout est expliqué ici

Discussions similaires

  1. Aide sur un programme Client Serveur
    Par clubmed01 dans le forum Linux
    Réponses: 33
    Dernier message: 29/05/2012, 10h22
  2. programme client serveur mode TCP/UDP en java
    Par ouss01 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 03/04/2009, 09h05
  3. Exemples de programmes client/serveur
    Par anakronox dans le forum Réseau
    Réponses: 11
    Dernier message: 02/12/2008, 14h27
  4. build.xml pour un programme client serveur
    Par donyas dans le forum ANT
    Réponses: 5
    Dernier message: 22/12/2006, 23h49
  5. architecture d'un programme client/serveur asynchrone (win)
    Par Heimdall dans le forum Développement
    Réponses: 2
    Dernier message: 05/09/2003, 23h59

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