有没有办法从Python列出所有正在使用的套接字?
我正在尝试在一台Linux机器和一些设备之间建立telnet连接,使用的是telnetlib
这个库。问题是,有时候会出现一个socket被其他会话占用的情况,我想知道:
- 有没有办法列出正在使用的socket?怎么列出它们?
- 哪个应用程序正在使用这个socket?
- 怎么关闭(释放)一个特定的socket?
我查了很多地方,但没有找到明确的答案。
谢谢,
I.
1 个回答
2
在命令行中,我会通过调用 netstat 来完成任务 1 和 2,然后把结果传给 grep 来过滤信息。
netstat -an | grep "pid of script"
如果你想在 Python 脚本中做到这一点,你可以通过一个子进程来调用 netstat,并获取它的输出和退出代码。接下来,你可以用正则表达式来过滤输出。不过,我不太确定怎么用 Python 关闭套接字,因为这可能需要管理员权限。