通过UDP解码java中的C结构数据报包

时间:2013-06-06 14:30:05

标签: java android c udp

这是我的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对象?在此先感谢。

1 个答案:

答案 0 :(得分:0)

使用ByteBuffer换取byte[]的{​​{1}}。 然后使用ByteBuffer的getXXX方法检索相应的值。

第一个p.getData()“frameType”的例子你会这样:

char

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