我试图向用户发送一个数据包,通知他们当前在服务器上的所有人,当他们向服务器发送一条包含“谁”字样的消息时。
这是我的代码:
else if( response.contains( "who" ) )
{
System.out.println( "Size of names collection: "+names.size() );
buf = null;
buf = names.toString().getBytes();
int thisPort = packet.getPort();
packet = new DatagramPacket( buf, buf.length,packet.getAddress(),thisPort );
socket.send(packet);
}
上面 print 语句的输出是 2 表示有两个人在上面,例如 andrew 和 james。现在,当我将其打包并发送时,我希望它会输出以下内容:
[安德鲁,詹姆斯]
但相反,客户得到:
[安德鲁,
就是这样。有什么问题?顺便说一句,我必须为此使用 UDP 并且无法切换到 TCP
更新
这是接收数据包的客户端类中的代码:
while( true )
{
try
{
// Set the buf to 256 to receive data back from same address and port
buf = null;
buf = new byte[256];
packet = new DatagramPacket(buf, buf.length, address, 4445);
socket.receive(packet);
String response = new String( packet.getData() );
// Receive the packet back
System.out.println( response );
}
catch( IOException e )
{
}
}