Всем привет. За ближайшие два дня я сломал себе мозг. Имею приложение андроид которое общается по вай фай через сокет с сервером. Сервер отправляет информацию в виде набора байт. Они могут быть как 0x00 так и 0хFF. Когда значение в небольших пределах, то все работает. 0х30,0х31 отрабатывает нормально, и в массиве char я вижу их нормально. Но когда приходит что то большое по типу 0хFF или 0хFЕ. То происходит лютая дичь. Это число превращается в черти что, да и еще двухбайтовое.
Пробовал раскладывать не в массив char а в массив byte ситуация еще хуже. Этот 0хFF или 0хFЕ раскладывается в три байта! и всегда одинаковые 0xEF 0xBF 0xBD. Я уже ничего не понимаю почему так происходит. Как мне просто получить теже данные которые я отправил, а не вот эту дичь...
Добавлено через 6 минут
В принципе можно найти выход и передавать просто символами в Ascii но блин тогда данных станет больше, да и разобраться хочется.
Вот код программы:
Пробовал раскладывать не в массив char а в массив byte ситуация еще хуже. Этот 0хFF или 0хFЕ раскладывается в три байта! и всегда одинаковые 0xEF 0xBF 0xBD. Я уже ничего не понимаю почему так происходит. Как мне просто получить теже данные которые я отправил, а не вот эту дичь...
Добавлено через 6 минут
В принципе можно найти выход и передавать просто символами в Ascii но блин тогда данных станет больше, да и разобраться хочется.
Вот код программы:
:
public BufferedWriter output;
public BufferedReader input;
output= new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
public void run() {
while (!stop_lisn) {
try {
inpt_str0 = input.readLine().getBytes();
inpt_str = inpt_str0.toString();
////inpt_str0 = input.readLine();
}