有没有办法从Python列出所有正在使用的套接字?

1 投票
1 回答
812 浏览
提问于 2025-04-18 18:14

我正在尝试在一台Linux机器和一些设备之间建立telnet连接,使用的是telnetlib这个库。问题是,有时候会出现一个socket被其他会话占用的情况,我想知道:

  1. 有没有办法列出正在使用的socket?怎么列出它们?
  2. 哪个应用程序正在使用这个socket?
  3. 怎么关闭(释放)一个特定的socket?

我查了很多地方,但没有找到明确的答案。

谢谢,
I.

1 个回答

2

在命令行中,我会通过调用 netstat 来完成任务 1 和 2,然后把结果传给 grep 来过滤信息。

netstat -an | grep "pid of script"

如果你想在 Python 脚本中做到这一点,你可以通过一个子进程来调用 netstat,并获取它的输出和退出代码。接下来,你可以用正则表达式来过滤输出。不过,我不太确定怎么用 Python 关闭套接字,因为这可能需要管理员权限。

撰写回答