2

我有一个绑定到某个 TCP 端口的 Windows 服务,该端口用于我的应用程序之间的 IPC。

是否有编程(WinAPI/WinSocket 等)方法来知道哪个应用程序连接到我的端口?

即在我的 Windows 服务中,我想获得连接到我的端口的进程的 PID。

4

2 回答 2

3

如果您正在寻找与netstat. 您可能需要以下 API: GetExtendedTcpTable

TCP_TABLE_OWNER_PID_ALL用参数寻找结果。

生成的MIB_TCPTABLE_OWNER_PID结构具有许多MIB_TCPROW_OWNER_PID结构,dwOwningPid这些结构具有您要查找的进程 ID。

于 2009-05-05T19:20:18.073 回答
0

如果您的意思是什么进程正在使用(侦听或连接使用)您的端口,请使用以下命令:

netstat -a -b -o -n

-a将向您显示所有连接(即使它们处于 LISTENING 状态)

-b将向您显示使用该端口的应用程序可执行文件

-o将显示应用程序的 PID

-n不会做 dns 翻译(你可能不需要这些来了解应用程序),没有必要

于 2009-05-05T17:51:24.077 回答