我无法将C应用程序中的双打数组发送到Java应用程序(通过UDP)。
目前我正在投射我的双重数据,例如
char* dataChars = (char*) dataDoubles;
int charsLen = sizeof(double)*doublesLen;
并通过UDP将此数据发送到java,后者获取包含正确数量的java双重条目的数据包(即两者的大小似乎相同)。
在java端,我收到一个byte [],然后我正在使用:
ByteArray b = ByteArray.wrap(byteData);
for(...){
doubleData[i] = b.getDouble();
}
当我发送包含C中定义的数据的数据包
时double TEST_DATA[4] = {1.0, 2.0, 4.0, 8.0};
在java中我得到,可靠
3.03865E-319 3.16E-322 2.0553E-320 4.079E-320
看起来这些比特正在变得混乱,但我不知道会纠正这个问题。
答案 0 :(得分:0)
正如Miky Denescu所说,以下修改解决了这个问题:
doubleData[i] = b.order(ByteOrder.LITTLE_ENDIAN),getDouble();