[JAVA] petite Problème avec les sockets

Résolu/Fermé
chabacha109 Messages postés 268 Date d'inscription samedi 11 décembre 2010 Statut Membre Dernière intervention 14 mai 2012 - Modifié par chabacha109 le 6/12/2011 à 00:21
Mav3656 Messages postés 2 Date d'inscription mercredi 16 septembre 2009 Statut Membre Dernière intervention 13 décembre 2011 - 13 déc. 2011 à 23:17
Bonjour a tous,

j'ai écrit deux processus client / serveur :
le client envoie un message vers le serveur et le serveur aussi , mais le problème c'est que je ne reçois pas les message envoyer par les deux (je crois c'est un blocage ) je vous laisse avec mon code et merci de me signaler l'erreur :) :


client.java :

package javaapplication15;  
import java.net.*;  
import java.io.IOException;  
import java.io.BufferedReader;  
import java.io.InputStreamReader;  
import java.io.OutputStreamWriter;  
import java.io.BufferedWriter;  
import java.io.PrintWriter;  
/**  
 *  
 * @author marwen  
 */  
public class client {  

    public client() {  
    }  
    public static void main(String args[]) throws IOException{  
    System.out.println("en attendant la réponse du serveur...");  
    Socket socketduclient =new Socket("localhost",2011);  
    System.out.println("connexion établie avec le serveur ");  
      
    BufferedReader input=new BufferedReader(new InputStreamReader(socketduclient.getInputStream()));  
    PrintWriter output=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socketduclient.getOutputStream())));  
      
  output.print("ceci est un message viens de moi (le client)");  
   output.flush();  
     
    String f=input.readLine();  
    System.out.println(f);  
      
      
    /*fermeture des fluxs*/  
    socketduclient.close();  
    input.close();  
    output.close();  
    }  
      
}  



serveur.java
package javaapplication15;  
import java.io.IOException;  
import java.net.*;  
import java.io.BufferedReader;  
import java.io.InputStreamReader;  
import java.io.OutputStreamWriter;  
import java.io.BufferedWriter;  
import java.io.PrintWriter;  



/**  
 *  
 * @author marwen  
 */  
public class serveur {  
      
public serveur(){  
}  

public static void main(String args[]) throws IOException{  
ServerSocket socketduserveur =new ServerSocket(2011);  
System.out.println("serveur démarré en attandant un client.....");  
Socket socketclient=socketduserveur.accept();  

BufferedReader input=new BufferedReader(new InputStreamReader(socketclient.getInputStream()));  
PrintWriter output=new PrintWriter(new BufferedWriter(new OutputStreamWriter(socketclient.getOutputStream())));  

String line=input.readLine();  
System.out.println(line);  

output.print("réponse serveur heuuu !");  
output.flush();  


/*fermeture des fluxs */  
socketclient.close();  
socketduserveur.close();  
input.close();  
output.close();    
}  
      
}  


merci encore .




To Be Or Not To Be , Marwen

2 réponses

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
6 déc. 2011 à 01:15
Rajoute un \n à la fin de output.print pour que cela coïncide avec le input.readLine();
0
Mav3656 Messages postés 2 Date d'inscription mercredi 16 septembre 2009 Statut Membre Dernière intervention 13 décembre 2011
13 déc. 2011 à 23:17
Merci beaucoup KX !

Je viens de perdre quelques heures à chercher pourquoi... Grâce à toi j'ai l'explication. Merci!
0
chabacha109 Messages postés 268 Date d'inscription samedi 11 décembre 2010 Statut Membre Dernière intervention 14 mai 2012 9
7 déc. 2011 à 00:37
Bonsoir KX,
ça marche merci , on peut aussi utiliser output.println()
au lieu de print(\n)..
bah je ne comprend pas pourquoi print("blala") ça marche pas peu-tu m'explique le problème ?
merci encore :)
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
7 déc. 2011 à 00:48
Tu le mets où ton print("blala") ?
Comme je l'ai dit si tu utilises readLine en parallèle il faut rajouter le caractère de fin de ligne, pour matcher le pattern, donc print("blala\n") ou println("blala") si tu préfères.
0
chabacha109 Messages postés 268 Date d'inscription samedi 11 décembre 2010 Statut Membre Dernière intervention 14 mai 2012 9
8 déc. 2011 à 23:40
bonsoir,
oui je comprend c'est claire , j'ai posé la question a mon prof, et j'ai eu la même réponse
merci
0