Problème avec la classe String (conversion en byte)
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:
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.