最大(4 + ByteBuffer
)size
(つまり、整数の後にbytes
文字が続く)を保持できるsize
があります。ただし、ByteBuffer
に書き込まれる文字数は、size
よりも小さい場合があります。
と思っていたのですが、ByteBuffer
に書き込まれた文字の合計サイズだけでなく、いくつの文字が特定されたのでしょうか。 limit
、position
などは、私が求めているものであるとSEEMで判断しません。
ご協力いただきありがとうございます!
ByteBufferに書き込んだ後、書き込んだバイト数はposition()
メソッドで確認できます。
その後、バッファをflip()
した場合、limit()
またはremaining()
メソッドを使用して、バッファ内のバイト数を見つけることができます。
その後、バッファーの一部を読み取る場合、残りのバイト数はremaining()
メソッドで確認できます。
DatagramChannel channel = DatagramChannel.open();
ByteBuffer bb = ByteBuffer.allocate(5+size);
channel.receive(bb);
bb.flip();
// actual length of received packet
int len = bb.remaining();