Protobuf messages do not have inherent delimiters; in fact, the concatenation of two messages can sometimes be a perfectly valid single message. Add delimiters in your protocol (if you are only sending a single message then just shutdown() the socket afterwards and have the recipient read until EOF; otherwise, send the length of the message in front of the message itself).
Chris