UNPKG

t-comm

Version:

专业、稳定、纯粹的工具库

24 lines (22 loc) 803 B
function getValidPort(port) { // eslint-disable-next-line @typescript-eslint/no-require-imports var net = require('net'); var server = net.createServer().listen(port); return new Promise(function (resolve, reject) { // 如果监听成功,表示端口没有被其他服务占用,端口可用,取消监听,返回端口给调用者。 server.on('listening', function () { server.close(); resolve(port); }); // 如果监听出错,端口+1,继续监听,直到监听成功。 server.on('error', function (err) { if (err.code === 'EADDRINUSE') { resolve(getValidPort(port + 1)); console.log("this port ".concat(port, " is occupied try another.")); } else { reject(err); } }); }); } export { getValidPort };