Сервер Node.JS получает данные посимвольно, а не построчно

У меня есть простой сервер Node.JS:

//Module dependencies
var net = require('net')


//Create server
var server = net.createServer(function (conn) {

  // handle connection
  conn.setEncoding('utf8');

  conn.write(
      'Hi, please enter something: '
  );

  conn.on('data', function (data) {
    console.log(data);
  });

});


//Listen
server.listen(3000, function () {
  console.log('\033[96m   server listens at *:3000\033[39m');
});

Предполагается, что ввод клиента повторяется в окне консоли сервера. Но когда я подключаюсь к серверу с помощью клиента telnet, он делает это, выводя символ за символом, в то время как я бы предпочел вывод строки за строкой при нажатии Enter.

Я знаю, что не могу собрать все входные данные в методе conn.on, но можно ли это сделать на более низком уровне?


person Krzysztof Wołowski    schedule 31.10.2012    source источник


Ответы (1)


Это связано с тем, что telnet очищает буфер TCP после каждого символа, если вы не используете линейный режим.

person simonmenke    schedule 31.10.2012
comment
Как включить эту опцию в telnet-клиенте Windows 7? - person Krzysztof Wołowski; 31.10.2012
comment
вам необходимо реализовать протокол telnet rfc1184 - person simonmenke; 31.10.2012