📅  最后修改于: 2023-12-03 15:40:26.056000             🧑  作者: Mango
当我们需要部署一个 web 应用或者创建一个本地服务器时,需要知道当前系统中有哪些端口正在被使用。下面将介绍在 TypeScript 中如何查看正在使用的端口。
我们可以使用以下命令列出正在使用的端口:
sudo lsof -i -P -n | grep LISTEN
这条命令将列出所有正在监听的网络连接(包括 IPv4 和 IPv6),并显示它们所使用的端口和进程 ID。如果我们只想看特定端口的信息,例如 8080 端口,可以使用以下命令:
sudo lsof -i :8080
如果我们正在使用 Node.js 运行应用程序,可以通过以下代码片段在 TypeScript 中查看正在使用的端口:
import * as net from 'net';
function isPortTaken(port: number): Promise<boolean> {
return new Promise((resolve) => {
const server = net.createServer((socket) => {
socket.write('Echo server\r\n');
socket.pipe(socket);
});
server.listen(port, 'localhost');
server.on('error', () => {
resolve(true);
});
server.on('listening', () => {
server.close();
resolve(false);
});
});
}
async function checkPortUsage() {
const port = 8080;
const isTaken = await isPortTaken(port);
console.log(`Port ${port} is ${isTaken ? 'in use' : 'available'}`);
}
checkPortUsage();
以上代码片段包含了一个名为 isPortTaken
的函数,它会尝试监听我们所要检查的端口(在这里是 8080),如果监听失败,说明该端口已经被其他进程使用,返回 true
;否则说明该端口可用,返回 false
。通过该函数我们可以检查所有要使用的端口是否被占用。
以上两种方法都可以用于查看正在使用的端口,我们根据实际情况选择不同的方法即可。如果是在 Node.js 中,可以使用第二种方法进行检查。如果是需要查看系统中所有端口的占用情况,可以使用第一种方法。