Я новичок в java сокетах и процессах. Я пытаюсь прочитать информацию из сокета TCP, но когда я получил данные, некоторые данные отображались неправильно. (Я думаю, что это может быть проблема кодирования, процесс, из которого я читаю, является демоном Genivi DLT).
Вот пример моего кода:
try (Socket socket = new Socket(hostname, port)) {
InputStream input = socket.getInputStream();
InputStreamReader reader = new InputStreamReader(input);
BufferedReader br1 = new BufferedReader(reader);
String line;
while((line = br1.readLine())!=null) {
String s = br1.readLine();
byte[] utf8Bytes = s.getBytes("UTF-8");
if(s.contains("SYS"))
System.out.println(s);
}
Вот фотография того, как данные, которые должны отображаться .
А вот как это на самом деле отображается на консоли:
ÒWAVAè5ÓrQSYS ² (PathologyCollectorCPU.cpp: getLoad(...)@69): {"Name": "Core", "cpuName": "cpu0", "percent": 33, "totalUser": 1533306, "totalNice:" 0, "totalSys": 1216838, "totalIdle": 5681926}
Кто-нибудь есть идея, почему это может быть, или какие-то подходы, которые я должен использовать для решения своей проблемы?
Редактировать: После некоторых копаний я думаю, что нашел некоторую информацию о протоколе, здесь: https://www.autosar.org/fileadmin/user_upload/standards/foundation/1-0/AUTOSAR_PRS_DiagnosticLogAndTraceProtocol.pdf на странице 16 Если у вас есть еще советы, это будет с благодарностью.