Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 20/04/2007, à 10:34

Stephanie

[Java]Programme qui ne se termine pas

Salut,

j'ai établi une connexion client serveur.
Le serveur envoi un message au client qui le lit :

// Cree une socket pour communiquer avec le service se trouvant 
	    //sur la machine ip au port port
	    Socket s = new Socket(ip, port);
	    // Cree les streams pour lire et ecrire du texte dans cette socket
	    BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
	    PrintStream out = new PrintStream(s.getOutputStream());
	    // Informe l'utilisateur de la connection
	    System.out.println("Connecte sur " + s.getInetAddress() + ":"+ s.getPort());
           //...	    

	    // lit une ligne provenant de la socket, donc du serveur
		while((line = in.readLine())!=null){
		System.out.println(line);
	    }
	    
	    // Verifie si la connection est fermee.
	    // Si oui on sort de la boucle
	    if (line == null)
		System.out.println("Connection ferme par le serveur.");
	    in.close();
	    out.close();
	    if(s != null) 
		s.close();

Le souci que j'ai, c'est que une fois l'affichage terminé, le programme ne se termine pas.
Par terminer, je veux dire aller à la ligne et afficher >
Ce qui signifie que le client peut taper une nouvelle requete

Dernière modification par Stephanie (Le 20/04/2007, à 15:43)

Hors ligne

#2 Le 20/04/2007, à 19:54

best_friend_fr

Re : [Java]Programme qui ne se termine pas

Salut

la fonction readLine est-elle blocante (attend-elle une entrée si elle n'en trouve pas)?


Affiche-t-il
"Connection ferme par le serveur." ?

Et encore une fois, INDENTE TON CODE !!!!!!!!!!!!!!!!!!!!!


sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr

Hors ligne

#3 Le 20/04/2007, à 20:41

Eragon

Re : [Java]Programme qui ne se termine pas

Tu pourrais mettre côté serveur une chaîne de caractère pour indiquer la fin de la communication du style "fin", comme ça côté client quand tu lis "fin", c'est que t'as fini.

Hors ligne

#4 Le 20/04/2007, à 21:12

Stephanie

Re : [Java]Programme qui ne se termine pas

best_friend_fr a écrit :

Salut

la fonction readLine est-elle blocante (attend-elle une entrée si elle n'en trouve pas)?


Affiche-t-il
"Connection ferme par le serveur." ?

Et encore une fois, INDENTE TON CODE !!!!!!!!!!!!!!!!!!!!!

Je n'ai rien mis d'autre que :

BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));

Puis je fais le while

Hors ligne

#5 Le 20/04/2007, à 21:14

best_friend_fr

Re : [Java]Programme qui ne se termine pas

oui, ca ok. Mais la commande inputLine est peut-etre blocante. C'est a dire que quand une commande ne recoit rien, elle a 2 possibilités :
- Attendre quelque chose
- renvoyer null.

Je ne sais pas ce que fait readLine.


sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr

Hors ligne