【问题标题】:java client python server sending udp datajava客户端python服务器发送udp数据
【发布时间】:2024-01-09 23:04:01
【问题描述】:

我正在尝试在 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();

但仍然没有关于整数和数组的线索..

【问题讨论】:

  • 为什么不以 JSON 格式发送所有数据?
  • 我该怎么做??我不知道 JSON

标签: java python udp client-server bytearray


【解决方案1】:

您可以像这样创建基于 JSON 的“协议”:

{"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对其进行编码。

【讨论】: