0
我無法從C應用程序向Java應用程序發送一個雙精度數組(通過UDP)。數組通信:將C雙精度轉換爲字符,然後將java字節數加倍
在我鑄造我雙倍數據的那一刻,這樣
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
它看起來像變得亂七八糟,但我不知道什麼會糾正這一點。
好像你需要確保該字節發送和在一個正確的順序解碼。另外,你可能想使用和(unsigned char *) – 2013-03-13 15:50:19