使用 telnet 的 Node.js 测试服务器 - 设置 Linemode
Posted
技术标签:
【中文标题】使用 telnet 的 Node.js 测试服务器 - 设置 Linemode【英文标题】:Node.js testing server with telnet - set Linemode 【发布时间】:2013-02-17 04:18:12 【问题描述】:有人可以告诉我如何将 linemode 设置为 telnet 测试吗?我google了很多,但不幸的是我没有成功。 我有这个超级简单的代码
var net = require('net');
var server = net.createServer(function(c)
console.log('socket opened');
c.setEncoding('utf8');
c.on('end', function()
console.log('connection/socket closed');
);
c.on('data', function(data)
console.log('Data:'+data);
c.write('Answer:'+data);
// c.end(); // close socket/conection
);
);
server.listen(8124, function() // start server (port 8124)
console.log('server started');
);
但测试看起来像这样:
客户:
Microsoft Telnet> open localhost 8124
Answer:dAnswer:daAnswer:atAnswer:taAnswer:a
服务器:
C:\Users\Laura\node server.js
server started
socket opened
Data:d
Data:a
Data:t
Data:a
【问题讨论】:
【参考方案1】:你想得到如下的telnet输入
Answer: a
Answer: b
Answer: c
那么您需要同时发送\r is carriage return
和line feed (\n)
。所以你的代码应该如下所示
var server = net.createServer(function(c)
console.log('socket opened');
c.setEncoding('utf8');
c.on('end', function()
console.log('connection/socket closed');
);
c.on('data', function(data)
console.log('Data:'+data);
c.write('\r\nAnswer:');
// c.end(); // close socket/conection
);
);
【讨论】:
以上是关于使用 telnet 的 Node.js 测试服务器 - 设置 Linemode的主要内容,如果未能解决你的问题,请参考以下文章
Node.js TCP 客户端的行为与 Netcat/Telnet 不同