我有一个应用程序,我从我们的内部测试设备监听端口7001 UDP广播,最近我更新了另一个需要做同样事情的应用程序。这两个应用程序必须能够在同一台计算机上共存。如何检测在Windows中侦听某个tcp/ip端口的程序?
当前,当我最近更新的应用程序尝试绑定到端口以侦听UDP广播并且失败时,它仅报告端口不可用并且表明继承的应用程序可能正在运行。我如何让我的应用程序检测哪个应用程序实际在该端口上侦听?我做了Google搜索,甚至搜索了这个网站,但到目前为止,除了在命令行中使用任务管理器,TCPView或netstat之外,我一直无法找到任何东西。
我更喜欢使用Windows API或Windows系统COM组件的技术,因为这两个应用程序都是用VB6编写的。 (我知道,我知道,但是我必须维护这些应用程序,因为它们是关键任务。)但是,如果我在新的开发工作中需要它,.NET解决方案也会很有用。
GetTcpTable2可以为您提供进程ID。类似的问题在这里[链接](http://stackoverflow.com/questions/13295277/check-on-avaiable-port-using-wmi-win32-class) – user2773289
不知道你是否可以使用这个或不是,但MSDN上面的一些示例代码条目位于http://msdn.microsoft.com/en-us/library/windows/desktop/bb408406(v=vs.85).aspx –
您还可以通过WMI获取此信息。非常方便的东西。 – EJP