【问题标题】:Python - How to close a port left open?Python - 如何关闭一个打开的端口?
【发布时间】:2017-08-09 18:07:11
【问题描述】:

我有一个进程有时会打开一个端口然后不关闭它(我在 Windows 10 上)。

通过 Python 关闭它的最佳方法是什么?端口号是1300,不会变。

我知道这可以通过命令行手动完成,方法是杀死 PID,但是我想将它全部保存在一个易于使用的批处理文件中。

【问题讨论】:

  • 如果保持端口打开的进程仍在运行,除了终止该进程之外,您无能为力。
  • @jasonharper 似乎并非如此——免费的CurrPorts 实用程序说它可以关闭不属于自己的特定连接。请参阅链接页面的“从命令行关闭连接”部分。

标签: python python-3.x python-sockets


【解决方案1】:

您可以使用 the psutil 模块。

from psutil import process_iter
from signal import SIGKILL

for proc in process_iter():
    for conns in proc.get_connections(kind='inet'):
        if conns.laddr[1] == 1300:
            proc.send_signal(SIGKILL) 
            continue

否则,你应该打电话给kill from subprocess.

【讨论】:

  • AttributeError: 'Process' 对象没有属性 'get_connections' :\
猜你喜欢
  • 2015-03-21
  • 1970-01-01
  • 1970-01-01
  • 2015-05-11
  • 2017-10-29
  • 2013-10-02
  • 1970-01-01
  • 2011-04-28
  • 1970-01-01
相关资源
最近更新 更多