Я занимаюсь разработкой встроенной системы, которая отправляет некоторые данные по TCP.Эта система основана на ARM, и ее код написан на C. На стороне C у меня есть массив char (или байт без знака, т.е. uint8_t ), который представляет некоторые закодированные данные:
char buffer[BUFFER_SIZE] = {0, 11, 34,176,255}; // for example.
Этот буфер будет отправлен на сервер по протоколу TCP / IP с использованием популярного модуля GPRS под названием SIM800.Соединение между микроконтроллером и SIM800 является UART, то есть стандартным последовательным соединением.Я могу отправить либо uint8_t или char массив.Он не отличается в мире C.
На стороне сервера существуют некоторые службы Java, которые получают и анализируют этот массив.
Проблема в том, что в языке C типы данных uint8_t и char несколько идентичны, т. Е. 0 -> 255 равны всей таблице ASCII.Но, насколько я знаю, это не так на сервере.В Java byte тип данных имеет внутреннюю подпись, и его диапазон составляет от -128 до 127. Более того, расширенные символы ASCII от 128 до 255 почему-то нестандартны и отличаются от системы к системе.
Служба Java получает данные в виде String , а затем преобразует их в массив байтов.
Я в замешательстве.Что произойдет, если я отправлю вышеупомянутый массив на сервер.Может ли сервис Java переосмыслить это?