簡體   English   中英

通過UDP解碼Java中的C結構數據報包

[英]Decode C structure Datagram packet in java through 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對象? 提前致謝。

使用ByteBuffer包裝從p.getData()獲得的byte[] 然后使用ByteBuffer的getXXX方法檢索相應的值。

第一個char “ frameType”的示例如下所示:

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

有關更多信息,請參見ByteBuffer文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM