Sim, você deve sempre permitir a possibilidade de não ler um 'comando' completo.
Considere, por exemplo, o caso de enviar vários comandos de uma só vez. Você não tem ideia de onde o limite de pacotes irá acontecer.
Você precisa de código para recombinar o tráfego do outro lado e dividi-lo em partes processáveis.