受信したDatagramPacketを文字列に変換しようとしましたが、小さな問題があります。何が最善の方法であるかわからない。DatagramPacket to string
私が受け取るデータは、ほとんどが未知の長さであるため、受信側にバッファ[1024]が設定されています。問題は、...私は、文字列 "ABC" を送って、私の受信側で次の操作を行うとしている私は次の出力を得る
buffer = new byte[1024];
packet = new DatagramPacket(buffer, buffer.length);
socket.receive(packet);
buffer = packet.getData();
System.out.println("Received: "+new String(buffer));
:ABC [] [] [] [] [] [] [] .....バッファの長さまで。 私は最後にすべてのジャンク/ヌルが無視されているはずだと推測していますので、何か間違っていなければなりません。 "私はbuffer.lengthが問題であることを知っています。私のうちはちゃんと出てきます。
感謝。
を試してみてください。アウトは完全に無意味になった。また、eclipseはメソッドString(byte []、int)が非推奨であることを警告します。私は彼が受信する文字列の正確な長さでバッファを初期化すると、すべてがうまくいくが、それでも同じ問題で立ち往生した。文字列の長さはあらかじめわかっていません。 – user1105216
しかし、これは新しいString(buffer、0、packet.getLength())でも機能しました。 ありがとうございます。 – user1105216