与TCPView可以做的类似。
有没有办法在.net或winapi中做到这一点?
我需要自动化此过程来模拟集成测试的连接丢失。
此外,我不能使用http://www.nirsoft.net/utils/cports.html,因为它被我的公司阻止。
现在,当程序想要创建套接字时,它会创建一个侦听预定义端口的进程。
正如在这个线程Manually close a port from commandline中提到的,套接字绑定到创建它的进程。这意味着当进程终止时它将自动释放。我猜cports(你提到的程序)实际上是这样做的。
现在你可以使用windows“netstat”中的内置程序来获取保留端口的列表,以及保持它们打开的进程的id。
看看这个链接Check Open TCP/IP Ports in Windows。
有多种方法可以运行程序,然后获取'std输出'以进行进一步处理。这是一个显示如何Execute a Command in C#的链接。
总结:(我的直接方法是......)从您感兴趣的端口拨打C#到netstat的电话,获取id。并调用“Taskkill / PID the_id / F”。
试一试,希望它适合你。