Hi there.
I have a problem with ByteBuffers, and I’m hoping someone can shed some light on what is happening.
I have a ByteBuffer a which is allocated 512 bytes using allocateDirect(512);
This is from now on my “writer”. In addition to this, I have Packet classes, which have pack() methods that return a ByteBuffer that is allocated to various sizes depending on the packet data.
Now, when I want to send something, I want to use the writer which has a large capacity, and fill it with the data of differen packets. (I want to be able to fill it with several packets, as this is a turn-based game, and I want to send chunks of larger packets at “end-of-turn” states). (However the following problem occurs if I only try with a single packet as well).
However, when I do writer.put(packet.pack()); nothing seems to happen to the writer’s internal values (position(), remaining(), etc). According to the API, the call is equivalent to
while (src.hasRemaining())
dst.put(src.get());
so I replaced the writer.put(packet.pack()); with this, just to test, but still nothing happens.
Am I missing something really obvious here, or is there some underlying magic that I’m not aware of, going on.
Appreciate any help or advice on this.
Thanks.