从TCP / IP连接Java读取double值

时间:2018-12-05 07:09:54

标签: java tcp double tcpclient datainputstream

我需要通过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

有人知道如何仅获取正确的值吗?

0 个答案:

没有答案