UNPKG

pick-port

Version:

Get a free TCP or UDP port for the given IP address

15 lines (14 loc) 493 B
"use strict"; 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()); }); }); }