Returns the message without removing it from the socket's receive queue.
On byte-stream sockets, block until the full amount of data can be returned.