0

次のデータ フィールドがあります。

int iData1 = 100;   
int iData2 = 5000;
float fData3 = 80.5f;
float fData4 = 100.1f;
String str1 = "BBBB";   

以下のようにデータをバイト配列として送信します。

ByteBuffer buf=ByteBuffer.allocate(BUF_SIZE);  
buf.order(ByteOrder.BIG_ENDIAN);
buf.putInt(bData1);
buf.putInt(iData2);
buf.putFloat(fData3);
buf.putFloat(fData4);
buf.put(str1.getBytes());
sendBytes(buf.array());

受信したバイト配列を解析するには、次の各フィールドを取得します。

iData1 = bbf.getInt();
iData2 = bbf.getInt();
iData3 = bbf.getInt();
fData3 = bbf.getFloat();
fData4 = bbf.getFloat();

しかし、受信した配列の文字列データ フィールド (str1) を取得するにはどうすればよいでしょうか? どんなヒントでも大歓迎です。ありがとう!

4

1 に答える 1

1

文字列の前に文字列の長さを置きます。次に、2 つのステップで文字列を読み取ります。

sDataLen = bbf.getInt();
bbf.get(sData5, 0, sDataLen);
于 2012-08-16T07:00:57.273 に答える