Настроить работу соединений пакета 'net'

нужно чтобы клиент каждый раз не создавал и не убивал соединение на каждую итерацию, СЕРВЕР ТРОГАТЬ НЕЛЬЗЯ. Вкратце по коду: происходит перебор массива и на каждую итерацию создается соединение(у сервера максимум 2 соединения), и отправляется на сервер слово из массива, сервер обрабатывает запрос и отправляет клиенту ответ, клиент получает ответ, закрывает соединение и выводит в консоль обработанный ответ, и так далее до конца массива. Код клиента:

const net = require('net');

const vacabulary = ['one','two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'red', 'yellow', 'blue', 'white', 'black'];

(async () => { 
    for (let i = 0; i < vacabulary.length; ++i){
        try {
            const res = await getTranslate(vacabulary[i]);
            console.log(res[0] + ' -> ' + res[1]);
        } catch (err) {
            console.log(err);
        }
    }
})();

async function getTranslate(word){
    return new Promise((resolve, reject) => {
        try{
            const client = net.createConnection({port: 1337});
            
            client.on('connect', () => client.write(word));

            client.on('data', (response) => {
                resolve([word, response.toString()]);
                client.end();
            });

            client.on('error', (error) => {
                console.log(error);
                client.end();
            });
        } catch (err) {
            reject(err);    
        }
    });
}

Код сервера:

const net = require('net');

const server = new net.Server()
server.maxConnections = 2;

server.on('connection', (socket) => {
    socket.on('data', (data) => {
        data = data.toString();
        setTimeout(() => {
            socket.write(data.toUpperCase());
        }, 5000);
    });
});

server.on('listening', () => {
    console.log('Server started')
});

server.on('error', (e) => {
    if (e.code === 'EADDRINUSE') {
      console.log('Address in use, check if port 1337 is occupied and restart server. Exiting...');
      process.exit(1);
    }
  });

server.listen(1337, '127.0.0.1');

Ответы (0 шт):