CアプリケーションからJavaアプリケーション(UDP経由)にdoubleの配列を送信するのに問題があります。
現時点では、このようにダブルデータをキャストしています
char* dataChars = (char*) dataDoubles;
int charsLen = sizeof(double)*doublesLen;
そして、このデータをUDP経由でjavaに送信します。これにより、正しい数のjava doubleエントリを含むパケットが取得されます(つまり、doubleは両方で同じサイズのようです)。
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
ビットがスクランブルされているように見えますが、これを修正する方法がわかりません。