Node.JS 服务器逐字符而不是逐行接收数据
Posted
技术标签:
【中文标题】Node.JS 服务器逐字符而不是逐行接收数据【英文标题】:Node.JS server receives data character by character instead of line by line 【发布时间】:2012-10-20 17:02:52 【问题描述】:我有一个简单的 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
方法中的所有输入,但可以在较低级别完成吗?
【问题讨论】:
【参考方案1】:这是因为 telnet 在每个字符之后都会刷新 TCP 缓冲区,除非您使用 linemode。
【讨论】:
如何在 Windows 7 telnet 客户端开启这个选项? 你要实现telnet协议rfc1184以上是关于Node.JS 服务器逐字符而不是逐行接收数据的主要内容,如果未能解决你的问题,请参考以下文章
SELECT FOR UPDATE 在 MySQL 中保存整个表,而不是逐行保存