0

这是我的 Android 应用程序的 java 代码:

InetAddress address = InetAddress.getByName("192.168.x.xxx");
int port = xxx;
DatagramPacket p = new DatagramPacket(buffer, buffer.length, address, port);
DatagramSocket ds = new DatagramSocket(port);
ds.receive(p);
Log.d("..........","Packet Received");
Log.d("UDP", "Received: '" + new String(p.getData()).trim() + "'");

我能够接收数据包,但无法以正确的方式解码。另一方面,我在结构(C程序)中发送数据包。我无权更改服务器代码,所以我需要将该服务器结构数据包解码为 java 对象??提前致谢。

4

1 回答 1

0

包装byte[]您从p.getData()使用ByteBuffer中获得的内容。然后使用 ByteBuffer 的 getXXX 方法来检索相应的值。

第一个char“frameType”的例子你会这样:

char frameType = (char) myByteBuffer.get(); // getChar() would fetch 2 bytes !!

有关详细信息,请参阅 ByteBuffer 文档。

于 2013-06-07T13:36:08.803 回答