Problème d'envoie String via Socket

Fermé
wilnzi - Modifié par NHenry le 30/12/2015 à 17:28
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 - 31 déc. 2015 à 13:27
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 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
31 déc. 2015 à 13:27
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