2011-01-05 4 views
0

データをバイナリ形式で読み込む必要があるプロジェクトで作業していますが、構造形式にすることができます。 Java構造では使用できません。バイト配列でデータを送信しました。それはまた、いくつかの構造を持っています。例生データまたはバイナリのフレームワークを作成して読み書きします。

パケット

int length 
int sequence no 
MessageData 

のMessageData MessageHeaderするmessagebody

MessageHeaderのint DATA1 長いDATA2チャー[] DATA3 // 2バイト のchar [] // DATA4 3について

バイト

MessageBodyと同じ

ただし、データはバイト配列でパックする必要があります。

一つは、私はJavaで実装する必要が

#pragma(2) //for word alignment 

struct Packet{ 
    int length 
    int sequence no 
    MessageData msgdata 

} 

としてCPPに行うことができます。

データを読み取るために、私はPreonライブラリ

を使用していますが、データを書き込むために、私はまだ 誰もが同じ種類のプロジェクトの作業を持っているか、より良いアイデアを持っているいくつかの機能の助けを借りて、バイト配列内の包装データのための通常の方法を使用しています

+0

Preonライブラリを使って読んでいるなら、私もあなたもそれを使って書くことをお勧めします。それ以外の場合は、データがどのように構造化されるのかを知る必要があります。私の推測では、char [](charはJavaでは16ビット)ではなく、テキストのバイト[]を使うつもりです。 –

+0

はい、バイト[]です。私はどのようにPreonのlibを使用して書き込むか分からない。コードをお持ちの場合は投稿してください。私はネット上でヘルプやドキュメントを見つけられませんでした。 – Kamahire

答えて

0

現在のコードベースにはデータを書き込むためのバイトが含まれていますが、まだ完了していません。それはあなたの現在のケースではうまくいくかもしれません:

Codec<Packet> codec = Codecs.create(Packet.class); 
Packet packet = ...; 
OutputStream out = ...; 
codecs.encode(packet, codec, out); 
関連する問題