Problème d'envoie String via Socket

wilnzi -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour à tous,

Je m'appelle Wilfried et j'ai un véritable problème avec l'envoie d'un String via des sockets.

Avant de continuer, voici les différents codes que j'utilise :

Client :

package org.wilnzi.request;

import java.io.*;

import java.util.*; 

import java.net.*;





public class Server {

 private String initialMessage;

 private BufferedReader bufferedReader;

 private InputStream inputStream;

 private OutputStream outputStream;

 private PrintWriter printWriter;

 private Socket socket;

 private BufferedInputStream bufferedInputStream;

 private ObjectOutputStream objectOutputStream;

 private byte [] data = null;

 private OutputStreamWriter out;

 

 

 public void Server(){

  

  

 }

 

 public void connexion(String pseudo, String password, boolean isRenew){

  try{ 

   socket = new Socket(Information.IP_ADRESS, Information.CONNEXION_PORT);

   inputStream = socket.getInputStream();

   outputStream = socket.getOutputStream();

   bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"utf-8"));

   printWriter = new PrintWriter(new OutputStreamWriter(outputStream,"UTF-8"), true);

   bufferedInputStream = new BufferedInputStream(inputStream);

   objectOutputStream = new ObjectOutputStream(outputStream);

   out = new OutputStreamWriter(outputStream,"UTF-8" );

   

   if(isRenew == true){

    //Old connected User

    String initialMessage = bufferedReader.readLine();

    System.out.println(initialMessage);

    printWriter.println("@sorelle"); 

     

     

   }else{

    //New connected User

    printWriter.println("Old");  

     

     

   }

  }catch(Exception e){

   e.printStackTrace();

  }

 }

 

 

}






Serveur :

 package org.wilnzi.clientrequest;

 

 

 import org.wilnzi.development.*;

 import org.wilnzi.development.mvc.*;

 import org.wilnzi.information.*;

 import org.wilnzi.object.*;

 import java.io.*;

 import java.util.*; 

 import java.net.*;



public class UserConnexion {

 

 Model model;

 Controller controller;

 int port; 

 Socket socket;

 

 public UserConnexion (int port, Model model, Controller controller){

  

  this.model = model;

  this.controller = controller;

  this.port = port;

 

 } 

 

 public UserConnexion (int port){

  

  try{

   ServerSocket serverSocket = new ServerSocket(port);

   while(true){

    socket = serverSocket.accept();

    Thread th = new Thread (new Connexion(socket));

    th.start();

   }  

  }catch(Exception e){

   e.printStackTrace();

  } 

 } 

 

 

 private class Connexion implements Runnable {

  private String initialMessage;

  private BufferedReader bufferedReader;

  private InputStream inputStream;

  private OutputStream outputStream;

  private PrintWriter printWriter;

  private Socket socket;

  private BufferedInputStream bufferedInputStream;

  private ObjectOutputStream objectOutputStream;

  private byte [] data = null;

  

  public Connexion(Socket socket){

   

   try{

    

    this.socket = socket;

    inputStream = socket.getInputStream();

    outputStream = socket.getOutputStream();

    bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"utf-8"));

    printWriter = new PrintWriter(new OutputStreamWriter(outputStream,"UTF-8"), true);

    bufferedInputStream = new BufferedInputStream(inputStream);

    objectOutputStream = new ObjectOutputStream(outputStream);

    

   }catch(Exception e){

    e.printStackTrace();

   }

   

   

  } 

  

  public void run(){

   try{

    printWriter.println("@");

    initialMessage = bufferedReader.readLine();

    System.out.println(initialMessage);

    

   }catch(Exception e){

    e.printStackTrace();

   }

  }

  

 }

 

}




Et à la reception voici ce que j'obtiens :

Client: ?? ♣@

Serveur : ?? ♣@sorelle





Je ne sais vraiment plus que faire!!

SVP AIDEZ MOI!!

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

On ne peut pas tester ton code vu qu'il est incomplet (à cause des import org.wilnzi) mais ce code est très compliqué pour envoyer juste un String...

Voici un exemple de transfert de deux flux Input/OutputStream, l'exemple est avec un FileInput/OutputStream mais c'est facilement modifiable, par exemple avec un DataInput/OutputStream dans ton cas :

https://forums.commentcamarche.net/forum/affich-22960561-envoi-des-fichiers-par-des-sockets-java#3
0