测试环境/效果
![示例图片](https://img-blog.csdnimg.cn/direct/487b805625234f4baba6d285225ad0e4.png)
const net = require("net");
const findPort = (port) => {
return new Promise((resolve, reject) => {
const server = net.createServer().listen(port);
server.on("listening", () => {
server.close();
console.log(port, `端口${port}可用`);
resolve(port);
});
server.on("error", (err) => {
console.log(port, err.code, `端口${port}被占用`);
if (err.code === "EADDRINUSE") {
resolve(findPort(port + 1));
} else {
reject(err);
}
});
});
};
(async () => {
const port = 8080;
const freePort = await findPort(port);
console.log(freePort);
})();
module.exports = findPort;