byte数组转字符串问题

学习Udp协议时,接收来自其它的端口程序发送过来的packet数据,用一组1024长度的byte数据接收,在将其转化为String字符串之后,原先byte数据空白的部分也被转化成了字符串的一部分
这是代码
DatagramSocket socket= new DatagramSocket(6666);
       while(true) {
           byte[] container = new byte[1024];
           DatagramPacket packet = new DatagramPacket(container, 0, container.length);
           socket.receive(packet);
           byte[] data;
           data = packet.getData();
           String receive = new String(data, 0, data.length);
           System.out.println(receive);
           if (receive.equals("bye")) {
               break;
           }
       }
       socket.close();
    }

运行截图

img

这个问题怎么解决?若能为给在下答疑解惑感激不尽!

String receive = new String(data, 0, data.length);

length需要使用packet.getLength()来获取,修改为如下:

String receive = new String(data, 0, packet.getLength());

看看packet有没有read方法,这个方法会返回读取了多少字节