일부 중간 네트워크를 통해 전송되고 Java 코드로 직렬 링크를 통해 수신되는 C 구조가 있습니다. Java 코드는 나에게 바이트 배열을 제공하여 원래 구조로 다시 패키징하려고합니다. 이제 수신 코드가 C 언어 인 경우 간단합니다. 어떤 간단한 방법으로 Java에서 C struct에 byte []를 재 패키징 할 수 있습니까? 내가 자바에서 최소한의 경험을 가지고 있지만이 나던은 일반적인 문제로 나타납니다 또는 내가 찾을 수있는 모든 FAQ에서 해결. Java에서 액세스되는 C 구조
는 참고는 C 구조체 오히려 원시 데이터를 보내는 것보다이 인코딩 C 및 Java 수를 모두 사용하기 위해가는 더 나을 수도, 당신은 링크의 양쪽 끝을 제어 할 수 있습니다 가정struct data {
uint8_t moteID;
uint8_t status; //block or not
uint16_t tc_1;
uint16_t tc_2;
uint16_t panelTemp; //board temp
uint16_t epoch#;
uint16_t count; //pkt seq since the start of epoch
uint16_t TEG_v;
int16_t TEG_c;
}data;
그래, C 에서조차도 한쪽 끝이 그 바이트를 어떻게 포장했는지에 따라 매우 위험했을 것입니다.최소한 한 번에 하나의 요소를 순서대로 정렬하는 알려진 바이트로 숫자를 전송해야하므로 같은 방식으로 다시 읽을 수 있습니다. – PSpeed
JSON에서이 구조체에 많은 대역폭 오버 헤드가 발생할 수 있습니다. – Crashworks
@PS 속도가 네트워크 바이트 순서입니다. @ Crashworks 아마도 가능합니다. 프로토콜 버퍼는 내가 아는 것보다 더 나은 작업을 수행 할 것입니다. – Andrew