Я пытался сделать принималку изображений по TCP на node.js и тоже столкнулся с этой проблемой.
В результате ничего лучше не придумал как сначала отправлять размер файла, а потом просто считать кол-во принятых байт чтобы знать где конец.
Сейчас погуглил, и пишут что можно узнать где конец передачи по \n
Т.е. если пришёл end-line - значит передача закончена.