Bonsoir,
Cela fait quelques jours que je "galère" sur ça :
J'arrive à envoyer des informations du client vers le serveur, OU du serveur vers le client en utilisant des OutputStream et InputStream d'un socket.
Je dis bien "OU" car dès que j'essaie de faire les deux à la suite, ça plante, comme le code ci-dessous..
J'ai les programmes (Client et Serveur) qui bloquent tous les deux, ils attendent on dirait... Ca bloque au moment où on prend le flux dans l'autre sens.
Par contre, si je fais uniquement un envoi de données dans un sens ça fonctionne.
Comment expliquez-vous cela svp ?
Merci beaucoup!
Côté Serveur
Côté Client
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 BufferedOutputStream out = new BufferedOutputStream(socket.getOutputStream()); ObjectOutputStream oos = new ObjectOutputStream(out); BufferedInputStream in = new BufferedInputStream(socket.getInputStream()); ObjectInputStream ois = new ObjectInputStream(in); // On récupère le nom du fichier String nomFichier = (String) ois.readObject(); // On envoie "ok" au client oos.writeObject("ok");
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 BufferedOutputStream out = new BufferedOutputStream(socket.getOutputStream()); ObjectOutputStream oos = new ObjectOutputStream(out); BufferedInputStream in = new BufferedInputStream(socket.getInputStream()); ObjectInputStream ois = new ObjectInputStream(in); // On envoie le nom du fichier oos.writeObject("nom du fichier"); // On recoit "ok" String s = (String) ois.readObject();
Partager