2011-01-05 4 views
0

데이터가 이진 형식으로 읽어야하지만 하나는 구조 형식으로 넣을 수있는 한 프로젝트에서 작업하고 있습니다. java 구조에서는 사용할 수 없습니다. 바이트 배열로 데이터를 보냈습니다. 그것은 또한 어떤 구조를 가지고 있습니다.원시 데이터 또는 이진 읽기 및 쓰기 프레임 워크 만들기

예를 들어

패킷

int length 
int sequence no 
MessageData 

MessageData MessageHeader MessageBody

MessageHeader INT의 DATA1 긴 DATA2 숯불 [] DATA3 // 2 바이트 문자 [] // 3 DATA4 바이트

MessageBody와 동일

데이터는 바이트 배열로 묶어야합니다.

하나는 내가 자바에서 구현해야

#pragma(2) //for word alignment 

struct Packet{ 
    int length 
    int sequence no 
    MessageData msgdata 

} 

으로 CPP에서 할 수 있습니다.

같은 종류의 프로젝트에 대한 작업을하거나 더 나은 아이디어

이 데이터를 읽기 위해 나는 Preon 라이브러리

을 사용하고 그러나 데이터를 쓰기 위해 나는 아직도 일부 기능 누구의 도움으로 바이트 배열에 포장 데이터에 대한 일반적인 방법을 사용하고 있습니다

+0

Preon 라이브러리를 사용하여 읽는다면 그것을 사용하는 것이 좋습니다. 그렇지 않으면 데이터가 어떻게 구성되는지 예상해야합니다. 내 생각 엔 char [] (자바에서는 char가 16 비트 임)보다는 text []를 사용하려고합니다. –

+0

예, 바이트 []입니다. Preon lib를 사용하여 어떻게 쓰는지 모르겠습니다. 코드가 있으면 게시하십시오. 나는 그물에 어떤 도움이나 문서도 찾지 못했습니다. – Kamahire

답변

0

현재 코드베이스에는 데이터 쓰기를위한 바이트가 포함되어 있지만 아직 완료되지 않았습니다. 그것이라고 말하면, 그것은 당신의 현재의 경우를 위해 작동 할 것입니다 :

Codec<Packet> codec = Codecs.create(Packet.class); 
Packet packet = ...; 
OutputStream out = ...; 
codecs.encode(packet, codec, out);