我已经在visual c ++中创build了一个程序,在那里我实现了一个web服务。 Web服务设置为在端口80上侦听,但是如果另一个程序已经在使用此端口,Web服务将无法启动。
所以,当web服务无法启动,我想有一个函数或方法,它可以获取进程的名称,目前使用端口80.然后,我可以打印一个错误的用户,并要求他closures处理。
GetExtendedTcpTable和GetExtendedUdpTable给你一个网络连接列表。 你可以遍历这个列表,并检查程序是否使用端口80(它也提供进程ID)。
作为第一次尝试,我会考虑将netstat
作为外部进程运行并捕获/解析输出。 它给你积极的连接。
不知道是否有办法通过API(而不是Windows程序员)做到这一点,但是你可以尝试netstat -abo作为shell命令,然后在结果字符串中查找TCP和端口80,二进制名称…
编辑:我相信你需要XP SP2至少这个工作…