【发布时间】:2019-11-18 02:04:19
【问题描述】:
第一次尝试 TCP 并编写了一个程序,该程序返回客户端发送的数字的平方。
如何在每次空闲'n'秒时向客户端询问一个数字?
我尝试了setTimeout 方法,但它会在“n”秒过去后触发,然后不会再次触发。
客户:
const net = require('net');
const readline = require('readline').createInterface({
input: process.stdin,
output: process.stdout
});
const options = {
port : 1234
};
const client = net.createConnection(options, () => {
console.log("Connected to server")
});
client.on('data', (data) => {
console.log(data.toString());
});
client.setTimeout(2000, () => {
readline.question('Number to be squared: ',(num) => {
client.write(num);
});
});
服务器:
const net = require('net');
const port = 1234;
const server = net.createServer(conn => {
console.log('New client joined');
conn.on('data', (data) => {
console.log(`Data received from client: ${data}`)
data = parseInt(data);
data = Math.pow(data,2);
conn.write('From server- '+data.toString());
});
conn.on('end',() => {
console.log('Connection stopped');
});
conn.on('error',(e) => {
console.log('Connection stopped-', e.message);
});
});
server.listen(port);
【问题讨论】: