如何摆脱剩余的缓冲区?

Mik*_*iky 3 java sockets networking udp datagram

我有一个服务器客户端应用程序,它使用数据报套接字来交换消息.我最初将缓冲区大小设置为1024字节,因为我不知道消息的长度.当我发送短于1024字节的内容时,我将其余的字符串显示为一些奇怪的字符(空字符或我不确定它们是如何被调用的).这是一个屏幕: 字符串缓冲区空字符

客户代码: byte[] buf = ("This is another packet.\n").getBytes(); DatagramPacket packet = new DatagramPacket(buf, buf.length, inetAddress, serverport); socket.send(packet)

服务器代码: byte[] buf = new byte[1024]; DatagramPacket packet = new DatagramPacket(buf, buf.length); socket.receive(packet);

Afr*_*din 9

socket.receive(packet);
byte[] data = new byte[packet.getLength()];
System.arraycopy(packet.getData(), packet.getOffset(), data, 0, packet.getLength());
Run Code Online (Sandbox Code Playgroud)