#1 Le 20/04/2007, à 09: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, à 14:43)
Hors ligne
#2 Le 20/04/2007, à 18: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, à 19: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, à 20:12
- Stephanie
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 !!!!!!!!!!!!!!!!!!!!!
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, à 20: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