спасибо всем откливнувшимся! так как проблема до сих не решена, хочу добавить:
чтобы не объяснять работу моего TCP-сервера, я нашел подходящий пример - это IMAP-сервер. На команду LOGIN USER PWD он окликается одной строкой, а на команду SELECT INBOX - несколькими. Правильно ли я понял, что несколько строк надо читать столькими же вызовами Read() и как все-таки узнать что эта строка была последней и можно посылать следующую команду?