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

Langage Java Discussion :

concat sur un string qui ne fonctionne pas


Sujet :

Langage Java

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 396
    Points : 230
    Points
    230
    Par défaut concat sur un string qui ne fonctionne pas
    Bonjour tlm,

    dans le cadre d'une application scolaire, je dois réalisé un chat en java. Pour se faire, je dispose donc de mon serveur multi threading et des clients.

    Pour transmettre des messages d'un client a l'autre, j'ai donc été obligé de déclarer un vector en static dans mes threads afin que le tout soit connu par chaque thread.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    static Vector<String> buffer_message = new Vector <String>();
    Donc en faite, chaque élément du vector est attribué a un client et sert de mémoire tempons pour récupérer les messages qu'il n'a pas encore été lire.
    C'est pourquoi, dans mon code, je désire utiliser l'instruction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    buffer_message.elementAt(i).concat(message);
    Message étant un String et i un entier qui représente l'élément. J'ai vérifier la valeur de i et de message avec un System.out.println juste avant l'instruction, et apres l'instruction, je vérifie le contenu de buffer_message.elementAt(i).

    Mais la, la valeur reste toujours inchangé. La seul explication qui me viendrait a l'esprit, serait a cause de static que je suis obligé de laisser a cause de mes threads.

    Savez vous comment je pourrais faire pour réussir a modifier le contenu de ce vector de string ?

    Je vous remercie d'avance.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    946
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 946
    Points : 1 849
    Points
    1 849
    Par défaut
    Essayez :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    buffer_message.elementAt(i) = buffer_message.elementAt(i).concat(message);
    Note 1 : Vector est déprécié.

    Note 2 : Ne serait - il pas plus simple d'avoir un seul texte, et une position différente par utilisateur plutôt qu'un texte par utilisateur ? Ou envoyer le texte aux utilisateurs au fur et à mesure?

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Février 2006
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 396
    Points : 230
    Points
    230
    Par défaut
    Salut, ta solution ne fonctionne pas.

    Et il serait en effet plus simple de faire comme ca, seulement d'après mon énoncé tous les utilisateurs doivent recevoir le message SAUF l'expéditeur. Donc je pense que le plus simple reste un buffer comme moi.

    Sinon, j'ai réussi a résoudre le probleme comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    buffer_message.set(i,buffer_message.elementAt(i) + "\n"+ message);

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    946
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 946
    Points : 1 849
    Points
    1 849
    Par défaut
    Je ne sais pas ce que j'avais quand j'ai écrit ma réponse précédente. Je voulais dire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    buffer_message.set(i, buffer_message.elementAt(i).concat(message));
    Ensuite, je ne vois pas en quoi le fait de ne pas envoyer le message à l'expéditeur impose d'avoir un buffer par utilisateur, mais si votre programme fonctionne c'est l'essentiel.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Evenement sur une div qui ne fonctionne pas
    Par lateek35 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/05/2012, 22h09
  2. String qui ne fonctionne pas
    Par machipot dans le forum Langage
    Réponses: 4
    Dernier message: 26/08/2011, 19h46
  3. [Prototype] Observer sur un form qui ne fonctionne pas
    Par Gregory.M dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 06/06/2010, 18h11
  4. Probleme sur une requete qui ne fonctionne pas
    Par tralala2 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 02/08/2009, 10h05
  5. [MySQL] Code PHP sur des UPDATE qui ne fonctionne pas
    Par bilou95 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 08/10/2007, 11h57

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