文字列に対してメソッドを呼び出すと、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」だけです。次に、2 回目に呼び出されたときに、「users」に格納されている値とともに完全な文字列が出力されます。
これが最初のラウンドで一貫した方法で正しく動作することを確認する方法はありますか?