[Serveur/Client] ObjectInputStream -> Lire des données envoyés
Bonjour,
je suis entrain de programmer une application de chat client/serveur . J'ai fait une version avec un simple client qui peut se connecter au serveur (qui marche ) Et je veux maintenant faire cette application pour pouvoir connecter plusieurs clients simultanément (un thread pour chaque client connecté : un gestionnaire de client) .
Bon voilà comment ça se passe :
J'ai le serveur qui attend une connexion d'un client :
[ServerSocket serveur ; Socket connexion]
Code:
this.connexion=this.serveur.accept();
Ensuite j'instancie un Gestionnaire de client :
[this : mon instance de Serveur ; this.connexion : Socket correspondant au client]
Code:
new ConnexionClient(this,this.connexion);
Dans ma classe ConnexionClient je commence par créer les flux d'entrée/sortie :
Code:
1 2 3 4 5 6 7 8 9 10 11
| public void creationFlux(){
try{
this.entree= new ObjectInputStream(this.connexion.getInputStream());
this.sortie= new ObjectOutputStream(this.connexion.getOutputStream());
this.sortie.flush();
this.srv.ajouterMessage("Le serveur à initialiser ses flux de communication avec le client.");
}
catch(Exception e){
Fenetre.warning("Impossible de créer les flux de communication.");
}
} |
Ensuite j'essaye de lire un message qui doit forcément arriver (en faite le client lors de sa connexion doit forcément envoyer un message qui contient son pseudonyme ) :
Code:
this.pseudo=(String) this.entree.readObject();
MAIS une exception est levée à ce moment ! Mon serveur qui accepte une unique connexion fait les mêmes étapes (un unique socket client et pas d'instanciation de connexionClient et la création des flux dans la classe Serveur ) et ça marche très bien . Savez-vous comment remedier à cela ?
Merci