Java buf=string.getbytes()结果不一致

Java buf=string.getbytes()结果不一致,java,sockets,udp,client-server,Java,Sockets,Udp,Client Server,当我对一个字符串调用getBytes()方法时,我会得到不一致的结果,第一次执行该语句时,它只返回字符串的前3个字符,如果我再次调用该语句,它会返回完整的字符串,但它也会随机地每隔一段时间只返回前3个字符。我的服务器类中的代码片段如下所示: String reply = ("Current list of users includes: " + users); buf = reply.getBytes(); packet = new DatagramPacket(buf, buf.length,

当我对一个字符串调用
getBytes()
方法时,我会得到不一致的结果,第一次执行该语句时,它只返回字符串的前3个字符,如果我再次调用该语句,它会返回完整的字符串,但它也会随机地每隔一段时间只返回前3个字符。我的服务器类中的代码片段如下所示:

String reply = ("Current list of users includes: " + users);
buf = reply.getBytes();
packet = new DatagramPacket(buf, buf.length, address, port);
socket.send(packet);
在客户端接收端,我有以下内容:

socket.receive(packet);
String response = new String(packet.getData());
System.out.println("ChatClient: Response from Server: " + response);
第一次称为所有打印的内容为“Cur”,第二次称为完整字符串时,将与存储在“users”中的值一起打印


是否有办法确保第一轮操作正确且一致?

如何在客户端初始化数据包?我觉得可能有很多可能性-错误的字符集、错误的输入我必须使用UDP,因为这是uni分配的标准。我有静态字节[]buf=新字节[512]; 静态地址=空;静态int端口=0;静态数据包=null;作为全局声明,然后publicstaticvoidnewuser(stringhost)抛出SocketException、unknownhostexption、IOException{datagramsocketsocket=newdatagramsocket();然后,套接字被传递到startChat方法,我在其中打印response@JoeMurphy在客户端?
DatagramSocket.receive(null)
将因
NullpointerException
而失败。