0

UDP パケットを受信する配列のバイトがあり、それを float 配列に変換します。問題は、反復ごとに配列をクリアし、新しいパケットを配列に追加したいときに、そこに受信したパケットを書き込むことです!

私はこのコードを使用します:

float[] receive = new float[] {}

受信パケットをアレイに追加するには、これをどのように変更すればよいですか?

4

3 に答える 3

1

UDP パケットを受信するたびに、その配列にデータを入れていると思います。これは、反復ごとにデータが消去される理由を説明しています。a を使用しByteArrayOutputStreamて、受信したバイトを保存します

ByteArrayOutputStream out = new ByteArrayOutputStream();
while (receiving) {
    out.write(received_data, 0, received_data_size);
}

完了したら、次のようにして、受信したすべてのバイトを取得できます。

byte[] bytes = out.toByteArray(); 

そして、float変換を行います

于 2012-06-08T13:51:30.740 に答える
0

あなたが投稿した行は次のようになります。

float[] receive = new float[] {}

ループの中にあります。したがって、ループごとに、receive変数は新しい空のfloat配列を取得します。

の宣言はreceiveループの外側に置く必要があります。そして、missingfaktorは正しいです、あなたはより良い使用しますArrayList

ArrayList<Float> receive;
...
receive.add(<your data>);
...
于 2012-06-08T13:52:31.460 に答える
0

配列は固定サイズのデータ​​構造です。java.util.ArrayList代わりに使用する必要があります。ボックス化のオーバーヘッドが許容できない場合は、ArrayList整数に特化した独自のカスタムを作成するか、同様の利用可能なソリューションのいずれかを使用できます。

于 2012-06-08T13:49:58.223 に答える