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

EDT/SwingWorker Java Discussion :

Problème entre Thread


Sujet :

EDT/SwingWorker Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 140
    Par défaut Problème entre Thread
    Bonjour à tous.

    Je suis en train de créer une application cliente et une application serveur pour le jeu "puissance4".Le serveur , dès qu'il se met en route se met à l'écoute des utilisateurs avec ss.accept(); et crée une thread/client pour leur répondre.Ca fonctionne.

    Le problème est au niveau de l'application cliente :

    Dans ClientThread.java , j'ai notamment ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    while(!estPartieFinie){
       try{
             read = br.readLine();
             //suite du traitement
       }
       catch(Exception e){}
    }
    Dans ClientGUI , j'ai mon constructeur reprenant l'observateur MouseListener avec la méthode mouseReleased dans le but de faire du drag and drop de mes jetons.Cette méthode appelle une méthode de ClientThread pour lui avertir qu'il faut envoyer message au serveur.Ce serveur me dit si c'est accepté ou non.
    Au début , quand je démarre l'application , il se bloque sur le br.readline().Quand je fais mon drag and drop , il passe dans l'autre thread mais ne repasse plus dans ClientThread.java pour écouter les messages provenant du serveur.

    Où est le problème ?

    Merci.

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 905
    Billets dans le blog
    54
    Par défaut
    Malheureusement on ne peut pas tester grand chose avec ce simple bout de code.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 140
    Par défaut
    Par exemple , je start le serveur.Puis je lance un premier client(pion rouge) , puis un deuxieme(pion jaune) .Les pions rouge ont la main.Je fais un drag and drop vers en haut du tableau de jeu.J'envoie donc une question au serveur pour savoir si j'ai le droit.Le serveur me répond.Mais le problème est que du côté client , il ne revient pas au br.readline() pour écouter les réponses du serveur.Par contre , si je ferme la fenêtre du deuxième joueur , à ce moment-là , je vois que mon pion est bien descendu et donc , la question envoyée au serveur a été accepté.

    Dois-je vous donner mon code ?

  4. #4
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 140
    Par défaut
    Bonjour ,

    Je viens de trouver la solution.En fait , le readline attend qu'il y ait quelque chose à lire.Il est bloquant.Et en fait , le readline repère la fin de ligne par :

    out.print("blabla"+'\n'); ou out.println("blabla");

    et j'avais oublié de mettre le passage de ligne ce qui explique que ma thread était bloquée indéfiniment.

    Merci quand-même.

Discussions similaires

  1. Problème de synchronisation entre Thread et VCL
    Par Jipété dans le forum Débuter
    Réponses: 33
    Dernier message: 21/05/2012, 11h14
  2. Problème de rafraichissement [EDIT: Synchronisation entre threads ]
    Par Nicolus dans le forum GTK+ avec C & C++
    Réponses: 4
    Dernier message: 29/10/2011, 14h37
  3. Problème de communications entre threads
    Par maya09 dans le forum Windows
    Réponses: 1
    Dernier message: 22/02/2006, 22h18
  4. [ODBC] Problème entre access et ODBC
    Par StephCal dans le forum Access
    Réponses: 4
    Dernier message: 09/07/2003, 16h47
  5. [VC++6][DX9] Problème de thread lors d'un blit ...
    Par grandjouff dans le forum DirectX
    Réponses: 2
    Dernier message: 12/06/2003, 22h22

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