Ensure all bytes of a message are received

`#recv` only has to provide up to the amount of requested bytes so it can terminate on large messages. Use `#read` instead which delivers exactly the requested number of bytes.