有没有办法杀掉现有的连接?
例如,192.168.1.120通过端口8080连接。
我想知道如何终止该连接?
非常感谢!
答案 0 :(得分:2)
最简单的方法(没有外部软件)是杀死和/或重启正在观看该端口的进程。但是,这会扼杀该进程使用的每个连接,因此这不是您通常想要在服务器上执行的操作。
要找出哪个进程正在处理您的连接,您可以在Linux中说netstat -anp
,或在Windows中说netstat -anb
。请注意,在Windows中,netstat
在从套接字回溯到进程时可能会非常慢。
如果您使用的是Windows,并且不介意下载某些内容,请查看SysInternals的TCPView。让您了解哪些端口是打开的,以及使用它们的是什么。它甚至可以杀死连接,IIRC,虽然我忘记了它是通过简单地重置连接还是通过使用它来终止进程。
答案 1 :(得分:0)
由于此问题被标记为C ++(并且我有相同的问题),因此我认为OP希望使用Windows API的示例。我使用GetTcpTable2
和SetTcpEntry
API来完成此操作。您需要调用GetTcpTable2
并将结果过滤到要终止的连接,然后将其传递到SetTcpEntry
。请注意,我在为GetTcpTable2
分配内存时采取了一些捷径,因此,如果您要编写生产代码,则需要阅读Microsoft文档,以了解如何最佳地正确使用API。
可以随意使用我根据MIT许可证在Github上编写和发布的代码: