バイト配列を使用して、別のコンピューターから受信したデータ パケットを格納しています。
receivedData = new byte[1024];
receivedPacket = new DatagramPacket(receivedData, receivedData.length);
socket.receive(receivedPacket);
receivedData = receivedPacket.getData();
String res = new String(receivedData); // PROBLEM HERE
問題は最後の行にあります。長さ 1024 のバイト ストリームとして宣言receivedData
しているためです。そのため、常に最後の行で配列全体から新しい文字列が作成されますが、実際に受け取った実際のバイト数は正確にはわかりません。だから、私は欲求不満のエラーに遭遇します:res
私が望むように受信されません。(受信した実際のバイトの長さは配列全体を修正しないため)
ですから、私の質問は次のとおりです。この点を修正するにはどうすればよいですか。文字列に変換するために実際に受け取ったバイト数を知るにはどうすればよいですか?