client serveur et socket
Le
ted

Bonjour,
je cherche a ecrire un petit client java se connectant à un serveur,
le serveur est celui presenté sur
http://defaut.developpez.com/tutoriel/java/serveur/multithread/
il s'agit donc d'un serveur de "echo / chat" multithreadé.
Mon client se connecte et envoie 2 messages, le serveur a l'air de
recuperer le premier message, mais le client ne recupere pas la
reponse, le deuxieme message n'arrive pas du tout au serveur.
Je pense etre bloqué par la lecture de mon bufferReader, bref il y a
un petit probleme dans mon code.
merci de vos precisions.
ci joint le code de mon petit client.
Cordialement,
Ted
package client;
import java.io.*;
import java.net.*;
/** Le processus client se connecte au site fourni dans la commande
* d'appel en premier argument et utilise le port distant 1025.
*/
public class BlablaClient {
static final int port = 1025;
public static void main(String[] args) throws Exception {
try {
System.out.println("coucou");
Socket socket = new Socket("localhost", port);
System.out.println("SOCKET = " + socket);
BufferedReader plec = new BufferedReader(
new InputStreamReader(socket.getInputStream())
);
PrintWriter pred = new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())),
true);
String str = "USER ANONYMOUS ";
pred.println(str); // envoi d'un message
str = plec.readLine(); // lecture de l'écho
System.out.println("lecture de l'écho"+str);
str = "HELLO u0000";
pred.println(str); // envoi d'un message
str = plec.readLine(); // lecture de l'écho
System.out.println("lecture de l'écho"+str);
System.out.println("END"); // message de terminaison
pred.println("END u0000") ;
plec.close();
pred.close();
socket.close();
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
}
}
je cherche a ecrire un petit client java se connectant à un serveur,
le serveur est celui presenté sur
http://defaut.developpez.com/tutoriel/java/serveur/multithread/
il s'agit donc d'un serveur de "echo / chat" multithreadé.
Mon client se connecte et envoie 2 messages, le serveur a l'air de
recuperer le premier message, mais le client ne recupere pas la
reponse, le deuxieme message n'arrive pas du tout au serveur.
Je pense etre bloqué par la lecture de mon bufferReader, bref il y a
un petit probleme dans mon code.
merci de vos precisions.
ci joint le code de mon petit client.
Cordialement,
Ted
package client;
import java.io.*;
import java.net.*;
/** Le processus client se connecte au site fourni dans la commande
* d'appel en premier argument et utilise le port distant 1025.
*/
public class BlablaClient {
static final int port = 1025;
public static void main(String[] args) throws Exception {
try {
System.out.println("coucou");
Socket socket = new Socket("localhost", port);
System.out.println("SOCKET = " + socket);
BufferedReader plec = new BufferedReader(
new InputStreamReader(socket.getInputStream())
);
PrintWriter pred = new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(socket.getOutputStream())),
true);
String str = "USER ANONYMOUS ";
pred.println(str); // envoi d'un message
str = plec.readLine(); // lecture de l'écho
System.out.println("lecture de l'écho"+str);
str = "HELLO u0000";
pred.println(str); // envoi d'un message
str = plec.readLine(); // lecture de l'écho
System.out.println("lecture de l'écho"+str);
System.out.println("END"); // message de terminaison
pred.println("END u0000") ;
plec.close();
pred.close();
socket.close();
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
}
}
Bonjour,
Essayez de rajouter des .flush() "là ou il faut" ... si celà ne marche
pas, renvoyer aussi le code du serveur et la trace d'execution ..
A+
TM