Первый раз попробовал 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);