windows – 查找应用程序使用的tcp端口

前端之家收集整理的这篇文章主要介绍了windows – 查找应用程序使用的tcp端口前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
好吧,所以我扩展了我公司的flexlm供应商守护程序,以便对客户端应用程序有所了解.

我需要能够在客户端连接之前找出lmgrd正在侦听的端口. API文档似乎相当贫瘠,我相信他们将大部分代码保存在编译形式中,所以我不能只看它们的来源.

是否可以调用Windows API的强大功能来找出特定进程正在使用的端口?如果来自sysinternals的Process Explorer可以做到,我应该能够做对吗?有没有人有这样的示例代码

它需要支持Windows XP及更高版本,因为我们的许多客户尚未升级.

编辑:
我应该注意到,事实证明FLEX支持从许可证文件提取端口.我没有在我面前的代码,但知道这不是找出供应商守护程序/ lmgrd正在运行的端口的最佳方法.

GetTcpTable2 – 请参阅编辑

http://msdn.microsoft.com/en-us/library/bb408406(v=vs.85).aspx

GetTcpTable函数检索IPv4 TCP连接表.

这将填充MIB_TCPTABLE结构.

typedef struct _MIB_TCPTABLE {
  DWORD      dwNumEntries;
  MIB_TCPROW table[ANY_SIZE];
} MIB_TCPTABLE,*PMIB_TCPTABLE;

现在是MIB_TCPROW

typedef struct _MIB_TCPROW {
  DWORD dwState;
  DWORD dwLocalAddr;
  DWORD dwLocalPort;
  DWORD dwRemoteAddr;
  DWORD dwRemotePort;
} MIB_TCPROW,*PMIB_TCPROW;

编辑重要说明:

您需要使用GetTcpTable2以获得相关的PID关联.

typedef struct _MIB_TCPROW2 {
  DWORD                        dwState;
  DWORD                        dwLocalAddr;
  DWORD                        dwLocalPort;
  DWORD                        dwRemoteAddr;
  DWORD                        dwRemotePort;
  DWORD                        dwOwningPid;
  TCP_CONNECTION_OFFLOAD_STATE dwOffloadState;
} MIB_TCPROW2,*PMIB_TCPROW2;

dwOwningPid

猜你在找的Windows相关文章