gpt4 book ai didi

java - UDP 接收和发送的 UDP 数据包有问题吗?

转载 作者:行者123 更新时间:2023-11-30 04:59:10 28 4
gpt4 key购买 nike

我正在尝试编写一个有关 UDP 连接的简单程序来了解它们。我已经实现了一些基本的事情,但是当我尝试发送并取回我发送的内容时,我遇到了一些问题,例如,

当我这样做时;发送一个字符串

“asd”到服务器我返回asdxxxxxxxxxx当我尝试打印我在服务器中得到的内容时,我得到 [B@5f186fab

我该如何解决这个问题?

为了更清楚地说明,我向您发送了几行代码,

在客户端;

Scanner in = new Scanner(System.in);
String result = in.nextLine();
// send request
byte[] buf = new byte[1000];
String read = result;
InetAddress address = InetAddress.getByName("localhost");
DatagramPacket packet = new DatagramPacket(result.getBytes(), result.getBytes().length, address, 4445);
socket.send(packet);

// get response
packet = new DatagramPacket(buf, buf.length);
socket.receive(packet);

// display response
String received = new String(packet.getData(), 0, packet.getLength());
System.out.println("Quote of the Moment: " + received);

在服务器中;

            byte[] buf = new byte[1000];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
socket.receive(packet);
byte[] received = packet.getData();
System.out.println(received.toString());

// figure out response

// send the response to the client at "address" and "port"
InetAddress address = packet.getAddress();
int port = packet.getPort();
packet = new DatagramPacket(received, received.length, address, port);
socket.send(packet);

谢谢大家

编辑 1 我认为我的缓冲区有问题,但我不知道如何解决。

最佳答案

你可以使用

System.out.println(Arrays.toString(received));

但你可能想要的是

System.out.println(new String(received, o, lengthRead, "UTF-8"));

关于java - UDP 接收和发送的 UDP 数据包有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7513661/

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