Olá pessoal. Estou com problemas para decodificar um stream de dados sobre uma conexão Socket. Crio a conexão da seguinte maneira:
//…
Socket socket = new Socket();
socket.connect(new InetSocketAddress(serverName, serverPort), timeout);
reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
int[] values = new int[9];
for (int i = 0; i < values.length; i++) {
values[i] = reader.read();
System.out.println(“values[”+i+"]: " + values[i]);
}
//…
Usando um sniffer sei que o que vem da rede é (em hexa):
23 00 f1 10 0b c2 22 92 f4
O problema é como os valores são decodificados (mostrados):
values[0]: 35 (ok)
values[1]: 0 (ok)
values[2]: 241 (ok)
values[3]: 16 (ok)
values[4]: 11 (ok)
values[5]: 194 (ok)
values[6]: 34 (ok)
values[7]: 8217 (AQUI ESTÁ O PROBLEMA, deveria se 146)
values[8]: 244 (ok)
Alguém saberia me dizer porquê o oitavo byte (values[7]) é mostrado como 8217 e não como 146? Como resolver isto?
Grato desde já, T+