使用net.Server

时间:2015-04-25 07:54:07

标签: node.js

我在接收数据时遇到问题,当我每次输入telnet时尝试telnet服务器时,服务器会记录我输入的每个字符,那么如何获取所有数据呢?还是完整的数据流?

var svr = require('net');

svr.creteSerever(function(socket){

   console.log("client connected");

     socket.on('data',function(data){
        console.log("the socket",data.toString());
    });


});


svr.listen(3030, 'localhost', false, function () { 
    console.log('server listening in port 3030');
});

1 个答案:

答案 0 :(得分:1)

您可以收集数据,直到您有足够的数据,或直到远程端完成为止:

var chunks = [];
socket.on('data', function(data) {
  chunks.push(data);
  // here you can check if you have enough
}).on('end', function() {
  var all = Buffer.concat(chunks);
  // here you have all the data that the client sent
});

编辑:根据您的评论判断,您对阅读所有数据并不是那么感兴趣,而是逐行阅读。在这种情况下,您可以使用readline模块:

var net      = require('net');
var readline = require('readline');

net.createServer(function(socket) {
  var rl = readline.createInterface({ input : socket });

  rl.on('line', function(l) {
    console.log('line:', l);
  });

}).listen(...);