У меня проблема со студией JAVA / Android, связанная с отправкой и получением байтов. В частности: отправка и получение байтовых значений более 127 с использованием сокетов TCP.
Я получаю данные здесь:
try {
mBufferOut = new PrintWriter(socket.getOutputStream());
mBufferIn = new InputStreamReader(socket.getInputStream(), "UTF-8");
char[] buffer = new char[64];
while (mRun) {
mBufferIn.read(buffer);
mServerMessage = String.valueOf(buffer);
if (mServerMessage != null && mMessageListener != null) {
mMessageListener.messageReceived(mServerMessage);
}
mServerMessage = null;
}
и отправляю данные здесь:
public void sendMessage(final char[] message) {
Runnable runnable = new Runnable() {
@Override
public void run() {
if (mBufferOut != null) {
mBufferOut.write(message);
mBufferOut.flush();
}
}
};
Thread thread = new Thread(runnable);
thread.start();
}
Когда я получаюданные, все данные свыше 127 в значениях возвращаются как «231, 191, 189». Когда я отправляю данные, каждый байт со значением x более 127 возвращается как «195, x».
Как я могу решить эту проблему?