gpt4 book ai didi

java - 如何使用 UDP 将结构从 C 应用程序发送到 Java 应用程序

转载 作者:太空宇宙 更新时间:2023-11-04 04:02:32 26 4
gpt4 key购买 nike

我实际上想通过 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 协议(protocol)的新手,但我和我的 friend 谷歌做了一些研究,我发现了一些东西,比如 htons/htonl/... 对于 C 端,以及 ByteArrayInputStream/DataInputStream ... 对于 java边。但是我真的不明白我必须如何以及何时使用这些东西,尤其是对于 java 端。

希望我的问题是可以理解的

谢谢

最佳答案

您需要以某种方式进行序列化。可以手动通过某种文本格式或 XML,或者如果您想要更强大的东西,请查看两侧的 ASN.1/BER 库。

关于java - 如何使用 UDP 将结构从 C 应用程序发送到 Java 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10125933/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com