Пришло тебе допустим "qw" ты проверяешь здесь есть в конце /n или нету, нету значит не выходишь в консоль а ждёшь ещё данные, пришло "e" дописываешь его к прежним данным, получаем "qwe" проверяешь на наличие /n , нету значит ждём ещё данные... Пришло "rty/nqwe" добавляем к прошлым данным, ищем /n , нашли, выводим все что до /n а то что после оставляем в буфере, тоесть выводим
"qwerty" и оставляем в буфере "qwe"