WINDOWS下获得端口对应的进程名1

Windows开发必备:端口进程管理 这篇文章介绍了Windows开发中端口和进程管理的实用技巧。主要内容包括:使用netstat命令查找特定端口对应的进程PID,通过taskkill终止进程(支持按进程名或PID终止),以及用tasklist查看进程详情。文章还提供了三步走的问题解决流程和实用的BAT脚本,能够批量处理端口占用问题。最后提醒注意事项,如管理员权限要求、数据丢失风险等,并建议将常驻进程配置为系统服务。这些命令组合能有效解决开发中常见的端口冲突和进程管理问题。 阅读详情
 

#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
#pragma comment(lib, "ws2_32.lib")
typedef struct _HandleInfo
{
USHORT wPid;
USHORT wCreatorBackTraceIndex;
BYTE   objType;
BYTE   handleAttibs;
USHORT handleOffset;
DWORD  dwKeObject;
ULONG  dwGrantedAccess;

}HANDLEINFO, *PHANDLEINFO;


int main(int argc, char* argv[])
{
WSADATA wd;
unsigned int ret = WSAStartup(0x0202, &wd);

typedef DWORD (WINAPI *PQuerySystemInformation)(DWORD, PBYTE, DWORD, PDWORD);

PQuerySystemInformation pQuerySystemInformation = (PQuerySystemInformation)GetProcAddress(GetModuleHandle("ntdll.dll"), "ZwQuerySystemInformation");
if(pQuerySystemInformation == NULL)
{
MessageBox(NULL, "Can't find NtQuerySystemInformation int Ntdll.dll!", "Failed", 0);
return 1;
}

BYTE *buf = new BYTE[20];
PHANDLEINFO phandleinfo = NULL;
DWORD dwRetSize = 0;
DWORD dwNum = 0;
unsigned int i;

ret = pQuerySystemInformation(16, buf,20,&dwRetSize);
if(0 != ret)
{
if(dwRetSize > 0)
{
//dwNum = dwRetSize/sizeof(HANDLEINFO);
delete [] buf;
buf = new BYTE[dwRetSize];
ret = pQuerySystemInformation(16, buf, dwRetSize, &dwRetSize);
if(0 != ret)
{
printf("Can't get any handles!/n");
goto end;
}
}
else
{
goto end;
}
}
dwNum = *(DWORD*)buf;
phandleinfo = (PHANDLEINFO)(buf+4);

for(i=0;i<dwNum;i++)
{
//static int iCount = 0;
//static WORD wPid = -1;
HANDLEINFO *pSeek = phandleinfo + i;
if((pSeek->objType==0x1a) && (pSeek->wPid))
{
//iCount++;
//wPid = pSeek->wPid;

HANDLE hSrcProcess;
hSrcProcess = OpenProcess(PROCESS_ALL_ACCESS,TRUE, pSeek->wPid);
if(hSrcProcess == NULL)
continue;

__try
{

 

SOCKET hSock;
ret = DuplicateHandle(hSrcProcess, (HANDLE)(pSeek->handleOffset), GetCurrentProcess(), (HANDLE *)&hSock, STANDARD_RIGHTS_REQUIRED,TRUE,0);

if(ret == 0)
{
int errcode = GetLastError();
continue;
}
sockaddr_in in = {0};
in.sin_family = AF_INET;
int dwSize = sizeof(in);
if(SOCKET_ERROR != getsockname(hSock, (sockaddr *)&in, &dwSize))
{
char name[0x100] = {0};

HMODULE hDll = LoadLibrary("psapi.dll");
typedef DWORD (WINAPI *PGETMODULEFILENAMEEX)(HANDLE, HMODULE, LPTSTR, DWORD);
//typedef BOOL (WINAPI *PENUMPROCESSMODULES)(HANDLE, HMODULE*, DWORD, LPDWORD);
PGETMODULEFILENAMEEX pfunc = (PGETMODULEFILENAMEEX)GetProcAddress(hDll, "GetModuleFileNameExA");
//PENUMPROCESSMODULES penum = (PENUMPROCESSMODULES)GetProcAddress(hDll, "EnumProcessModules");
//DWORD dwCb, dwRet;
//HMODULE module[1000];
//ret = penum(hSrcProcess

pfunc(hSrcProcess, NULL, name, 0x100);


FreeLibrary(hDll);

printf("socket:%4d  port:%4d  PID:%4d(%s)/n", pSeek->handleOffset, ntohs(in.sin_port), pSeek->wPid, name);

}
}
__finally
{
CloseHandle(hSrcProcess);
}
}

}

getchar();

end:
delete [] buf;
return 0;
}

【RT-DETR创新改进】改进前必看!对Ultralytics调参, 1:1还原RT-DETR官方版本实验参数,使用原汁原味的RT-DETR模型,才能高效跑实验、高效涨点、收割小论文、完成大论文!!! 本文针对Ultralytics训练RT-DETR精度不佳问题,提供参数配置优化方案。通过对比官方RT-DETR参数设置,详细指导如何修改Ultralytics版本的关键参数,包括优化器、学习率、权重衰减等6处配置调整。操作步骤涵盖default.yaml文件修改和trainer.py代码调整,确保模型收敛性能达到官方水平,帮助研究者快速提升实验效果。文末附官方源码链接和具体参数配置网址供参考。 阅读详情

相关推荐

IAP固件升级(附代码)-- Bootloader接收BIN文件(带Xmodem和CRC16/32校验)

祝各位在新的一年发大大大大大大大大大大大财、涨涨涨涨涨涨涨涨涨涨涨工资

m0_69014205的博客 5589

“一切皆文件“ 视角下的网卡

dev/sda 可以通过任何一个程序以任意方式读写,定义一套任意的私有格式(或文件系统)即可,而 /dev/eth0 则必须和对端共同遵守一套格式和逻辑,这同一套格式和逻辑就是 TCP/IP,将 TCP/IP 汇聚于系统本身或共享库中最直接,这取消了直接读写网卡的需求,而调用系统或共享库中协议例程的接口就是 socket。创建像 /dev/sda 一样的设备文件 /dev/eth0 读写网卡不难,像 /dev/net/tun 注册物理网卡就行,但你读写它时要自己手工做协议的封装和解封装。

TCP/IP 1万+

Windows 高精度计时器:QueryPerformanceCounter 原理、陷阱与最佳实践

本文深入解析Windows高精度计时器QueryPerformanceCounter(QPC)的工作原理、常见陷阱及最佳实践。QPC通过读取硬件计时器(如TSC)实现微秒级精度,适用于游戏开发、音视频处理等高性能场景。文章详细探讨了多核同步、动态频率调整等挑战,并提供了优化代码示例和性能对比数据。

weixin_33391446的博客 272

详细的查询进程和端口的 API 的方法

查询进程和端口的 API 介绍: 好,上面说的有点离题了,这篇博文的目的在应用层而不在内核层, 所以我们无须去体会 Windows 网络层的这种变化。 一般来说,要完成进程和端口的映射,我们使用的是由 IPHlpapi.dll 中导出的 API 来完成的, 在 Vista 之前的操作系统中,要查询进程和端口的信息,容易很多, 你可以通...

weixin_30709929的博客 611

5.FxBlue跟单常见问题

fxblue喊单ea和fxblue跟单会在mt4/mt5客户端ea栏目里记录fxblue在跟单复制订单过程中的全面记录。在遇到问题时,我们首先要恢复默认参数尝试,然后再到ea栏找报错提示。 ​ 需要注意的是,是EA选项卡,而不是日志选项卡。 此外,您可以在 MT4/5 软件终端面板的"EA"选项卡中查看跟单记录,您可以通过右键单击 Experts 日志并从 MT4/5 的弹出菜单中选择“打开”来打开每日日志文件以及历史文件。 5.1 No “heartbeat” received 没有收到“心跳” 接收方

weixin_44406393的博客 1874

k8s infiniband 和 RoCE(RDMA over Converged Ethernet)

vendors 为设备厂商编号,注意这里不是 ibv_devinfo 命令看到的vendor_id 的值,而是 lspci -n |grep “网卡的bdf” 得到的。如上文所述,启动了两个测试 pod ,登录其中一个 pod(该 pod roce 设备 ip 为 10.56.217.79)如上文所述,启动了两个测试 pod ,登录其中一个 pod(该 pod ip 为 10.96.225.24)说明:文中用到的镜像是自定义的,文末有其Dockerfile 文件。修改该文件,增加污点容忍的内容,如下。

weixin_40548182的博客 1799

windows 命令查看端口、进程、进程名

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34395205的博客 2633

利用大模型和聚类算法找出 Excel 文件中重复或相似度高的数据,并使用 FastAPI 进行封装的详细方案

tokenizer将输入的文本列表texts转换为 PyTorch 张量,同时进行填充和截断操作,以确保所有输入具有相同的长度。对输入进行推理,得到模型的输出。对模型的最后一层隐藏状态求平均,得到每个文本的向量表示。.numpy()将 PyTorch 张量转换为 NumPy 数组。使用DBSCAN算法对文本向量进行聚类。eps是邻域半径,是形成核心点所需的最小样本数。fit方法对输入的向量进行聚类,并返回每个样本所属的簇标签。try:定义了一个 POST 请求的 API 路由,路径为。

AI的内部世界的博客 1069

【windows】windows系统如何查看端口监听、进程和杀进程

Windows 上打开cmd的三种方式 1. Win + R 2. C:\Windows\System32\cmd.exe 2. 输入%comspec%也可以打开cmd 查看端口监听和对应的PID 语法: netstat –ano | findstr "<端口号>" netstat –ano | findstr "1080" 图中的地2列为端口本机端口监听,所对应的PID为最后一列 查看该PID对应的进程名称 语法: task...

michaelwoshi的博客 1万+

从零开始讲DDR(5)——读懂Datasheet

对于开发人员来说,需要根据实际场景和使用的需要,使用不同厂家,不同型号的DDR,虽然原理上大同小异,但是还是有一些细节上的需要注意的地方,接触一个新的DDR芯片,首先就是需要找到对应的datasheet,而能都读懂datasheet,也是一个硬件工程师的必备技能。

apple_53311083的博客 5224

python基础:工作会用到的95%的基础python代码都在这了(万字详解!)

本文是一份Python编程语言的快速参考备忘单,涵盖了Python基础语法和常用数据类型。主要内容包括:Python入门指南(打印、变量声明)、内置数据类型(字符串、数值、列表、元组、集合、字典等)、控制结构(判断、循环)、函数定义、文件处理操作以及字符串操作方法(切片、循环遍历等)。这个备忘单特别适合初学者快速查阅Python基础语法,同时也提供了数据类型转换、f-string格式化字符串等实用技巧。通过简洁的代码示例展示了Python的基本语法规则和典型用法。

数据知道的博客 8164

Windows查看指定端口被哪个进程占用

1.打开CMD命令行,输入 netstat -ano|findstr “端口号” 查看进程,不要漏掉双引号: netstat -ano|findstr "端口号" 以查找 8989 端口为例,通过 Netstat 可以找到是 PID 为 31684 的进程占用了 8989 端口: 2.使用Tasklist查看对于 PID 的进程名: tasklist|findstr "PID号" 可以看到是 java.exe 进程占用了该端口: 如果我们想结束该进程,可以在任务管理器(详细信息)内找到该进程,可直接

yzpbright的博客 2万+

GPU硬件架构与微架构深度解析09-GPU寄存器文件深度解析

本文探讨GPU架构中大规模寄存器堆的设计与高效分配算法。寄存器文件作为GPU关键组件,支持大规模线程并行和快速数据存取。文章分析了多体寄存器堆的设计考量,包括端口数量、冲突避免和功耗管理,并比较了线性扫描、图着色等寄存器分配算法的特点。还介绍了寄存器压缩、动态分区等高级优化技术,以及NVIDIA Ampere架构的实际案例。这些技术对提升GPU计算性能和能效至关重要。

2301_79143213的博客 122

使用Win32 API获得端口占用列表并关闭对应进程

获得端口占用可以用命令netstat -ab实现,结束进程可以用taskkill,但是用C++怎么实现呢? 答案是Windows已经提供了API实现功能。GetTcpTable可以得到当前占用的端口数量以及具体的ip和端口,但是得不到对应的进程。GetTcpTable2可以额外获得占用端口对应进程的pid,拿到pid,后面问题就好办了。 下面是效果图: 源码: #define _WINSOCK_DEPRECATED_NO_WARNINGS #include <iostream> #inclu

tomwillow的博客 2194

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

windows查看进程及对应端口的进程

windows查看进程及对应端口的进程 1、netstat netstat -ano|findstr "123" 123是进程号和端口号都可以,可以不用"号 netstat -aon|findstr 8080 端口号 netstat -aon|findstr 9464 进程号 a:显示所有地址和端口号 n:以数字形式显示 o:显示进程pid 注意,netstat不能杀死进程 2、tasklist tasklist|findstr "pid"可以是进程号和进程名称 例子 进程名称,输出包含

集电极 1万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

windows查找端口,杀死对应进程

在 Windows 系统中,你可以按以下步骤查找指定端口并杀死对应的进程。

滴水石穿 2228

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

如何在windows下查看端口被哪个进程占用及端口是否通畅(可访问)?

操作环境:windows 在进入本文前,先思考以下几个问题: 1. 如何查看端口使用情况? 2.如何查看指定端口使用情况? 3. 如何查看端口对应的进程ID(即PID)? 4. 如何根据PID查看是哪个程序占用了端口? 5. 如何查看某个ip地址的端口是否通畅(可访问)? Windows提供了netstat命令,能够显示当前的 TCP/IP 网络连接情况,注意:只有安装了TCP/I...

coolcoffee168的专栏 6974

Windows netstat 查看端口、进程占用

图中的端口号为1068,所对应的PID为3840。IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的统计信息;IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。目标:在Windows环境下,用netstat命令查看某个端口号是否占用,为哪个进程所占用.从 (c)图 可以看出,PID为3840所对应的进程名字为msnmsgr.exe。查看PID对应的进程名称。可以查看netstat的相关信息。在底部的 [] 中,顶部是其调用的组件,

kittyicd的博客 2706

[原创] WinXP下根据端口查询对应的进程

####################################################### QueryPortW.pl# 根据端口查询对应的进程(Windows XP 版本)# Author:  Rick Cheng# Date:    2005-10-30   # Version: 1.0############################################

SIA的专栏 1204

windows netstat 查看端口、进程占用

标:在Windows环境下,用netstat命令查看某个端口号是否占用,为哪个进程所占用. 操作:操作分为两步:(1)查看该端口被那个PID所占用;方法一:有针对性的查看端口,使用命令 Netstat –ano|findstr “<端口号>”,如图,最后一列为PID。图中的端口号为1068,所对应的PID为3840。 (a)图 方法二:查看所有的,然后找到对应的端口和PID。...

夫君子之行,静以修身,俭以养德,非淡泊无以明志,非宁静无以致远. 2006

如何看java进程端口_查看一个进程对应的端口号

一、liunx 下1.查找指定目标项目(atf web工程)进程的pidps -aux | grep atfroot 3582 0.1 11.2 382228 190588 ? Sl 09:31 0:19 java -Datf -jar start.jar etc/jetty.xmlroot 22121 0.0 0.0 1644 508 pts/1 R+ 12:12 0:00 grep atf2....

weixin_39864387的博客 7260

windows_查看端口被占用情况、结束进程

1、查看所有端口占用情况; 2、查看指定端口占用情况; 3、根据PID查看相应的进程或程序; 4、结束相应进程; 1、查看所有端口占用情况: win+R,调出cmd窗口: 回车: 查看所有端口占用情况: netstat -ano 2、查看指定端口占用情况(端口引号有没有都可以,此处以5040为例): netstat -aon|findstr 5040 or netstat -aon|findstr "5040" 记住最后一列数字PID,此处为5340。 3、根据PID查看相应的进.

pang787559613的博客 2431

Windows查看端口和进程

windows: 通过任务管理器查看进程信息 通过控制台查看进程信息 taskkill杀死进程 Linux: ps -ef //查看所有进程信息 kill 32029 //使用kill 进程id,杀死进程 top //查看所有进程信息,可以使用top命令 Java自带工具: jps查看进程ID jstack查看进程中的线程状态 ......

qq_44885775的博客 1万+

【转载】Windows netstat 查看端口、进程占用

在Windows环境下,用netstat命令查看某个端口号是否占用,为哪个进程所占用. 操作:操作分为两步: 1)查看该端口被那个PID所占用; 方法一:有针对性的查看端口,使用命令 netstat –ano|findstr “<端口号>”(个人测试,win7下DOS命令中,端口不能带“”),如图,最后一列为PID。图中的端口号为1068,所对应的PID为3840。 ...

tecoes的博客 1943

windows中查找端口占用并删除对应进程

以 8080 端口为例 1 查找 8080端口的占用情况 在powershell中输入 netstat -ano | findstr "8080" 找到对应的进程号PID 为8720 2 找到对应的PID所在的进程名称 tasklist | findstr "5768" 3 结束该进程 taskkill /f /t /im ApplicationWebServer.exe 4 相关参数描述 /f 强制终止进程 /t 终止指定的进程和它启动的子进程 /im 指定要

LeonSUST的博客 1281

Windows,Centos查看端口占用情况并结束对应的进程

Ctrl + Shift + Esc 打开任务管理器,输入对应的 PID 查看是那个程序。Ctrl + Shift + Esc 打开任务管理器,输入对应的 PID。此处占用 8080 端口的进程的 PID 为 4796。命令,回车,就可看到系统当前所有端口的占用情况。此处的 PID 为 8853 和 8859。### 2. 查看指定端口的占用情况。Win + R 打开命令窗。命令,结束端口占用的进程。

m0_73866100的博客 2372
上一篇: IDS五大发展趋势
下一篇: WINDOWS端口到进程的实现
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值