我正在尝试编写一个关于 UDP Connections 的简单程序来了解它们。我已经实现了一些基本的东西,但是当我尝试发送并取回我发送的内容时,我遇到了一些问题,例如,
当我这样做时;发送一个字符串
“asd”到服务器我得到了 asdxxxxxxxxxxxx,当我尝试打印我在服务器中得到的内容时,我得到 [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 我认为我的缓冲区有问题,但我不知道如何解决。