2

Androidがこのシンボルを送信するのはなぜですか?(�)

私がやっていることは、いくつかの変数を取得し、それらをまとめて、マルチキャストを使用して送信することです。記号は文字列の最後にのみ出現し、何度も繰り返されます。

byte[] buffer;

String temp1 = "temp1=" + "37";
String weight1 = "weight1=" + "68";
String bpm = "bpm=" + "128";
String angBack = "angback=" + "90";
String angLeg = "angleg=" + "90";
String angBed = "angbed=" + "91";

String msg = "status:teste," + temp1 + "," + weight1 + "," + bpm + "," + angBack + 
              "," + angLeg + "," + angBed;

buffer = msg.getBytes();

InetAddress group = InetAddress.getByName("230.0.0.1");

DatagramPacket packet = new DatagramPacket(buffer, buffer.length, group, 5556);
socket.send(packet);

次に、反対側で文字列を取得します。これらの記号は文字列の最後に表示されます。

byte[] buffer = new byte[256];

DatagramPacket packet = new DatagramPacket(buffer, buffer.length);

multicastSocket.receive(packet);

String msg = new String(packet.getData());

なぜこうなった?

4

1 に答える 1

3

これは奇妙なシンボルではなく、ただのシンボル0x00です。
バッファ全体を書き込んでいます。データ長を確認してください。

String msg = new String(packet.getData(), packet.getOffset(), packet.getLength());
于 2012-07-05T15:52:44.143 に答える