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. |