Я отправляю команду из telnet и получаю ее, используя мой собственный сервер, используя команду сокета recv (). Если я отправлю «аа», получится 4 байта. Я могу понять, что 3-й байт равен \ n, но что такое 4-й байт?
«Сетевой виртуальный терминал», реализованный Telnet, определяет их среди своих управляющих последовательностей (код символов в десятичном виде):
Line Feed (LF) 10 Moves the printer to the
next print line, keeping the
same horizontal position.
Carriage Return (CR) 13 Moves the printer to the left
margin of the current line.
( RFC 854 )
Обратите внимание, что для перемещения выходной позиции в начало следующей строки требуется двухсимвольная последовательность. Обычно это CR LF, но в принципе это также может быть LF CR (но Telnet требует, чтобы за CR, за которым не следовал LF, следовал NUL). Результатом этого и того факта, что протокол telnet является симметричным, является то, что терминатор проводной линии Telnet представляет собой двухсимвольную последовательность CR LF. Это то, что вы наблюдаете.