It starts at the initial size, will temporarily
balloon up to the maximum size, and will reuse
a buffer up to the likely size.
Anything larger than the maximum size will cause
the connection to be aborted and an exception thrown.
This is to protect you against a peer trying to
exhaust your memory, while keeping the user-level
processing simple.
These control the size of the receive buffer.
It starts at the initial size, will temporarily balloon up to the maximum size, and will reuse a buffer up to the likely size.
Anything larger than the maximum size will cause the connection to be aborted and an exception thrown. This is to protect you against a peer trying to exhaust your memory, while keeping the user-level processing simple.