java客户端python服务器发送udp数据
我正在尝试用java创建一个客户端,它使用UDP将数据发送到python服务器,但在发送数据时遇到了问题。到目前为止,我看到或读到的每个例子都是这样的:
byte[] buf = new byte[256];
InetAddress address = InetAddress.getLocalHost();
DatagramPacket packet = new DatagramPacket(buf, buf.length, ip,port);
System.out.println("Sending...");
socket.send(packet);
我搞不懂的是,我怎样才能发送我的数据,这些数据可以是int、char或string类型,甚至是数组??我的意思是,我该如何将这些更改为字节,将其放入buf并发送它们。 然后可以在python客户端上简单地进行如下解码:
data,addr = self.sock.recvfrom(1024)
data = data.decode()
编辑:
我已经找到了如何将字符串转换为字节的方法,方法是:
buf = "hello".getBytes();
但仍然没有关于整数和数组的线索
# 1 楼答案
您可以这样创建基于JSON的“protocole”:
{“items”:[{“type”:“string”,“value”:“test”},{“type”:“int”,“value”:3}]}
并使用https://code.google.com/p/json-simple/wiki/EncodingExamples#Example_1-1_-_Encode_a_JSON_object对其进行编码