我實際上想通過UDP將結構從C應用程序發送到Java應用程序。如何使用UDP將結構從C應用程序發送到Java應用程序
的結構看起來就像是:
typedef struct {
type1 liste1;
type2 liste2;
type3 liste3;
type4 liste4;
}liste;
而且type1,2,3,4也是結構,其中包括自己其他的結構了。
現在,我只發送結構類似(清單當然是我的結構):
sendto(socketOut, &(liste), sizeof(liste), 0, (SOCKADDR *) &(recvAddrAck),sizeof(recvAddrAck));
而且我得到的UDP一樣,在Java應用程序:
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方面。
地希望我的問題是可以理解的
感謝
我認爲在您將結構發送給java之前,您可以將其轉換爲像** liste1; liste2; liste3; liste4 **這樣的文本格式。然後你的Java應用程序將得到一個原始文本值,然後拆分你的結構的值,並使其成爲一個Java類。 – Fer 2012-04-12 14:46:48