我从udpserver向java中的客户端发送20个字节的数据。在客户端,我收到这样的
byte[] buf = new byte[25];
final DatagramPacket recv = new DatagramPacket(buf,25);
String data = new String(recv.getData());
当我打印数据时,它正在打印其他内容。我怎样才能获得我的实际数据。请建议。
答案 0 :(得分:0)
您正在发送20个字节,但您正在分配一个最多可接收25个字节的接收缓冲区。收到的数据报可以更小,但在构造String
时需要考虑实际的接收长度,例如:
String data = new String(recv.getData(), 0, recv.getLength());