在Node.js中将数据从客户端发送到服务器

我试图在Node.js中编写一个简单的客户端服务器程序,客户端将input2个参数(例如,用户将键入S 4以获得S 4的平方根的值)进行math计算,发送它到服务器,服务器将返回答案。 它大部分工作; 但是,当服务器返回答案时,客户端显示答案并显示原始input。 任何人都可以指出为什么发生这种情况?

server.js

 var net = require('net'); var server= net.createServer(function(c) { console.log('server connected'); c.on('end', function() { console.log('server disconnected'); }); c.on('data', function(data) { data = data.toString().split(" "); var num = parseInt(data[1], 10); switch (data[0]){ case 'S': c.write(Math.sqrt(num).toString()); } }); c.write('What would you like to do?\n'); c.write('(S) - Square root <arg>\n'); c.pipe(c); }); server.listen(3000, function() { console.log('server bound'); }); 

client.js

 var net = require('net'); var num = 1; var client = net.connect({port:3000}, function() { console.log('client connected'); }); client.on('data', function(data) { if (num == 1) { console.log(data.toString()); process.stdin.resume(); process.stdin.once('data', function(input) { client.write(input); }); num++; } else { console.log("Server returned: " + data.toString() + "\n"); process.exit(); } }); client.on('end', function() { console.log('\nclient disconnected\n'); }); 

为了说明:当我在客户端inputS 4时,打印到屏幕上的结果是Server returned: 2S 4

您正在将input传送到输出