udp在java中解码c结构数据包

xfb7svmp  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(528)

以下是我的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对象??提前谢谢。

lg40wkob

lg40wkob1#

Package byte[] 你从哪里得到的 p.getData() 使用bytebuffer。然后使用bytebuffer的get方法来检索相应的值。
第一个例子 char “frametype”你会这样:

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

更多信息请参见bytebuffer文档。

相关问题