如何处理控制+;C在node.js TCP服务器中

如何处理控制+;C在node.js TCP服务器中,node.js,input,tcp,Node.js,Input,Tcp,如何处理node.js TCP服务器中的控件+C输入 var server = net.createServer(function(c) { c.on('end', function() { console.log('Client disconnected'); }); c.on('data', function(data) { if (data == "CONTROL+C") { // Here is the check

如何处理node.js TCP服务器中的
控件+C
输入

var server = net.createServer(function(c) {
    c.on('end', function() {
        console.log('Client disconnected');
    });
    c.on('data', function(data) {
        if (data == "CONTROL+C") { // Here is the check
            c.destroy();
        }
    });
}).listen(8124);

Control-C是一个单字节0x03(使用ASCII图表有点帮助)


然而,无论何时处理套接字连接,您都必须记住,您将以“分块”的方式接收数据,分块不一定与数据的发送方式相对应;您不能假设客户端的一个发送调用对应于服务器端的一个块。因此,您不能假设如果客户端发送一个Control-C,它将是您在数据事件中收到的唯一内容。在同一事件中,其他一些数据可能在它之前出现,其他一些数据可能在它之后出现。您必须在数据中查找它。

来自埃伯曼的答案。它起作用了

c.on('data',函数(data){
if(data.toString().charCodeAt(0)==3){
c、 破坏();
}
});

这里发布了一个解决方案,它不同,我试图通过套接字处理这个问题。您是在客户端还是服务器端按ctrl+c'ing键?请提供更多详细信息。根据定义,输入到服务器的信息来自客户端,如telnet。所以ctrl+c来自telnet,服务器得到了一些字节,但我无法确定表示ctrl+c的字节序列是什么,以及如何在javascript/node.js中进行字节比较使用
data.toString('hex',0,data.length)
检查数据。对于ctrl-c,它显示
fff4fffd06