我正在尝试在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();
但仍然没有关于整数和数组的线索..
答案 0 :(得分:0)
您可以像这样创建基于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对其进行编码。