这是我的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对象?在此先感谢。
答案 0 :(得分:0)
使用ByteBuffer换取byte[]
的{{1}}。
然后使用ByteBuffer的getXXX方法检索相应的值。
第一个p.getData()
“frameType”的例子你会这样:
char
有关详细信息,请参阅ByteBuffer doc。