Bonjour à tous.

Je débute en Java et je tente d'écrire un petit serveur. Les clients sont écrits en C++. Ils envoient des messages en tableau de char (= byte en Java) avec le caractère '\n' pour séparer les messages.

Voici mon code pour récupérer les messages des clients :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
String message;
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while ((message = reader.readLine()) != null) { 
	int pos = message.indexOf(';');
        if (pos == -1) continue;
        String cmd = message.substring(0, pos);
	if (cmd.equals("START")) {
		...
	}
	if (cmd.equals("STOP")) {
		...
	}
}
Ceci fonctionne plutôt bien. Mais seulement quand les messages des clients contiennent des caractères ASCII. Sinon la classe String de Java encode et transforme les messages reçus.

Y a t-il moyen d'empêcher la classe String de transformer ces messages ?
Y a t-il moyen d'avoir accès au tableau de byte reçu initialement ?
Ou faut-il tout réécrire sans utiliser la classe String (tableau de byte) :ouïlle: ?

Merci pour vos réponses.