Gar*_*eal 5 sockets vb6 ip port tcp
我有一个我继承的应用程序,它在端口7001上侦听来自我们内部测试设备的UDP广播,我最近更新了另一个需要做同样事情的应用程序.两个应用程序必须能够在同一台计算机上共存.
目前,当我最近更新的应用程序尝试绑定到端口以侦听UDP广播并失败时,它只是报告端口不可用并建议继承的应用程序可能正在运行.如何让我的应用程序检测哪个应用程序实际上正在该端口上侦听?我已经完成了谷歌搜索,甚至搜索了这个网站,但到目前为止,除了在命令行使用任务管理器,TCPView或netstat之外,我一直找不到任何东西.
我更喜欢使用Windows API或Windows系统COM组件的技术,因为这两个应用程序都是用VB6编写的.(我知道,我知道,但我必须维护这些应用程序,因为它们是关键任务.)但是,如果我在新的开发工作中需要它,.NET解决方案也会很有用.
小智 2
使用:
\nnetstat -n -o\nRun Code Online (Sandbox Code Playgroud)\n这将显示进程 ID,您可以在任务管理器的进程查看器中查看,转到菜单“查看\xe2\x86\x92列...”并检查进程 ID (PID)。然后您可以看到侦听该端口的进程的名称。
\n当然,您需要一种编程方式来完成此操作,并且正如已经建议的那样,GetTCPTable2 API 是最好的。事实上,如果您查看 netstat.exe 的 IAT(导入地址表),它实际上使用该 API 来获取该信息。
\n有一种方法可以直接与命令窗口通信并使用管道获取其输出,并且它可以正常工作,但理想的方法是简单地使用 netstat 所使用的相同 API。
\n