Я сделал небольшой проект, который преобразует шестнадцатеричную строку в строку ASCII. Когда я конвертирую значение, я отправляю его клиенту. Но мой клиент не пересмотрел значение.
Я искал почему и увидел, что когда я конвертирую строку ASCII обратно в шестнадцатеричное, то я получаю немного другое значение обратно ... Так что я думаю, что что-то идет не так, когда я отправляю данные ... Но я не нет, как исправить мою проблему ..
Я также попытался преобразовать гекс сначала в dec, а затем в ascii, также я попробовал более noob whay, просто отправьте команду, например, так:
char p = 3;
char d = 4;
bw3.write(p + "" + c + "");
Так вот код, который я получаю сейчас:
ServerSocket welcomeSocket2 = new ServerSocket(9999);
Socket socket2 = welcomeSocket2.accept();
OutputStream os3 = socket2.getOutputStream();
OutputStreamWriter osw3 = new OutputStreamWriter(os3);
BufferedWriter bw3 = new BufferedWriter(osw3);
String hex4 = "00383700177a0102081c4200000000000001a999c338030201000a080000000000000000184802000007080444544235508001000002080104";
StringBuilder output4 = new StringBuilder();
for (int i =0; i< hex4.length(); i +=2){
String str4 = hex4.substring(i, i+2);
int outputdecimal = Integer.parseInt(str4,16);
char hexchar = (char)outputdecimal;
System.out.println(str4);
output4.append(hexchar);
}
bw3.write(output4.toString());
bw3.flush();
Я также заметил, что когда я посылаю команду длиной всего 4 байта или 10, все идет хорошо. Я получил мой преобразованный код ASCII хорошо. Команда, которую я сейчас хочу отправить, имеет длину 58 байт.