我实际上想通过 UDP 将结构从 C 应用程序发送到 java 应用程序。
结构看起来像这样:
typedef struct {
type1 liste1;
type2 liste2;
type3 liste3;
type4 liste4;
}liste;
type1,2,3,4 也是包含其他结构的结构。
现在,我只是发送这样的结构(liste 是我的结构):
sendto(socketOut, &(liste), sizeof(liste), 0, (SOCKADDR *) &(recvAddrAck),sizeof(recvAddrAck));
我在java应用程序上得到了这样的UDP:
DatagramSocket socket = new DatagramSocket(SERVERPORT);
byte[] buf = new byte[1500];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
while (true) {
socket.receive(packet);
data = packet.getData();
}
所以,我的问题是,如何解码数据?我是 UDP 协议的新手,但是我和我的朋友 Google 做了一些研究,我发现了一些东西,比如 C 端的 htons/htonl/... 和 java 的 ByteArrayInputStream/DataInputStream ...边。但我真的不明白如何以及何时必须使用这些东西,尤其是对于 java 端。
希望我的问题可以理解
谢谢