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 буфера след всеки знак, освен ако не използвате linemode.

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