pick-port
Version:
Get a free TCP or UDP port for the given IP address
15 lines (14 loc) • 493 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.reserve = reserve;
const dgram = require("node:dgram");
async function reserve(ip, port, family) {
const server = dgram.createSocket(family === 4 ? 'udp4' : 'udp6');
await new Promise((resolve, reject) => {
server.unref();
server.on('error', reject);
server.bind({ address: ip, port, exclusive: true }, () => {
server.close(() => resolve());
});
});
}