Чтение двойного значения из соединения TCP / IP Java - PullRequest
0 голосов
/ 05 декабря 2018

Мне нужно прочитать значение двойной скорости симулятора вождения по протоколу tcp / ip.

Я попробовал это так:

Socket s = new Socket(server, port);
InputStream is = s.getInputStream();
DataInputStream dis = new DataInputStream(is);
System.out.println(dis.readDouble());

С BigEndian = true в конфигурациисимулятор Я получаю такие значения, которые не имеют смысла:

-1.565600306167059E-119
 2.6794374850840603E-248
-2.8742899426422626E-168
-1.858946187722445E-277
 1.0067114608326767E54
-0.001054984626127145
-3.862596704088319E-110
 4.618147910668653E-193
-9.491033037580185E290

При BigEndian = false первым выводом является правильное значение, затем 7 бессмысленных значений и так далее:

109.94424404374932
1.0152777137342873E132
3.810036543451522E-70
5.888865755856121E100
-3.430929070370842E67
1.0937105040100144E-105
-1.809009002903045E-259
2.7053994656972186E-23
105.04537620848295
1.304469700127963E126
-1.3728712552450811E284
...

Вот что Wireshark показывает для 1 пакета:

wireshark output

У кого-нибудь есть идеи, как получить только правильные значения?

...