Windows services 如何知道哪个本地应用程序连接到我的套接字(Windows)
我有一个绑定到某个TCP端口的windows服务,该端口用于我的应用程序之间的IPC 是否有一种编程(WinAPI/WinSocket等)方法可以知道哪个应用程序连接到我的端口Windows services 如何知道哪个本地应用程序连接到我的套接字(Windows),windows-services,sockets,tcp,winsock,Windows Services,Sockets,Tcp,Winsock,我有一个绑定到某个TCP端口的windows服务,该端口用于我的应用程序之间的IPC 是否有一种编程(WinAPI/WinSocket等)方法可以知道哪个应用程序连接到我的端口 i、 e.在我的Windows服务中,我希望获得连接到我的端口的进程的PID。如果您指的是正在使用(侦听或连接)端口的进程,请使用以下命令: netstat-a-b-o-n -a将显示所有连接(即使它们处于侦听状态) -b将显示使用该端口的应用程序可执行文件 -o将显示应用程序的PID -n不会进行dns翻译(您可能不需
i、 e.在我的Windows服务中,我希望获得连接到我的端口的进程的PID。如果您指的是正在使用(侦听或连接)端口的进程,请使用以下命令:
netstat-a-b-o-n
-a
将显示所有连接(即使它们处于侦听状态)
-b
将显示使用该端口的应用程序可执行文件
-o
将显示应用程序的PID
-n
不会进行dns翻译(您可能不需要这些来了解应用程序),如果您正在寻找与netstat
相同的WinAPI方法,则不需要进行dns翻译。您可能需要以下API:
使用TCP\u TABLE\u OWNER\u PID\u ALL
参数查找结果
生成的
MIB\u TCPTABLE\u OWNER\u PID
结构有许多结构,这些结构具有dwOwningPid
,这是您要查找的进程ID。谢谢您的回答,但我需要编程方法来实现这一点。WinXP SP2+支持这一点。如果您查找较旧版本的兼容性,请查找AllocateAndGetTcpExTableFromStack API。抱歉,这不是我的问题,我想知道连接到我的端口的应用程序的PID,而不是绑定到端口的应用程序的PID。您无法从远程计算机知道这一点。您只知道源端口和IP。您的问题不太清楚。如果您正在查找连接到某个本地服务的本地应用程序的PID,您可以使用GetExtendedTcpTable或AllocateAndGetTcpExTableFromStack查看两个方面:侦听和连接。如果这有帮助,您介意提高此答案的评级吗?这与我的问题类似:答案基本相同。