Allow flush to complete before receiving

When using async socket types we should let the send flush
before receiving the next message.