For example, if a server is sending a packet of bit stream to my tcp client, and I am beginning to use async_read_some to retrieve it.
Is this async_read_some operation might retrieve only part of the packet from the buffer, or is the buffer mutable so the async_read_some would be blocked until this packet stream is fully arrived?
For TCP, async_read_some might retrieve only part of the stream, and there are no blocking in the sense of user program.