Actually, I think you get the whole socket design wrong. I suggest some reading on 'accept'.
Anyway, if client sends a multitude of text in separate 'send's, then yours second source is right. You can replace '(true)' with something else like (!socket.IsEof()).