VC++如何获取某进程网络流量(速率)

Setheo 2010-04-12 01:09:23
请问VC如何获取一个进程网络速率,就像QQ医生里面的网络流量监控一样的效果

希望能够详细一点,或者是提供一个示例.分不够了,谢谢各位大虾.
如果可以,我愿意用 100-200 RMB购买示例代码.
如果是要出售的话,就回复一下淘宝链接.谢谢各位了.
...全文
2696 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhdj1109 2012-09-19
  • 打赏
  • 举报
回复
顶一个! 求大虾! 求解啊!
smwhotjay 2011-02-17
  • 打赏
  • 举报
回复
ring3下可以hook住explorer,然后hook他的CreateProcess.等几个执行exe的api.在他创建子进程的时候,注入dll到子进程,hook住子进程的socket api. 主要几个收发api. send recv WSASend WSARecv sendto recvfrom .
瑞星防火墙就是ring3下这么拦截进程的.当然他也有驱动部分来检查.
还有一种是spi 注册个网络中间层.自己过滤收发.
yszmj20091 2010-04-14
  • 打赏
  • 举报
回复
学习学习
findcsdn 2010-04-14
  • 打赏
  • 举报
回复
Hook socket的所有API 监控recv 和 send的流量。
Setheo 2010-04-14
  • 打赏
  • 举报
回复
自己想了个办法,抓1秒内的上行数据包,然后整理之后计算速率,不知道行不行,正在实验代码,要是成功的话我贴上来.
rendao0563 2010-04-13
  • 打赏
  • 举报
回复
自己查MSDN,CPU占用率只是其中一个参数。
Setheo 2010-04-13
  • 打赏
  • 举报
回复
5楼好像是获取CPU占用率的吧。 - - 我是要获取流量.
zhouqian88423 2010-04-13
  • 打赏
  • 举报
回复
非常好, 学习!
herman~~ 2010-04-13
  • 打赏
  • 举报
回复
mark
fxpxzh 2010-04-13
  • 打赏
  • 举报
回复
五楼的收藏了,有时间去试试、、
zqlclj 2010-04-13
  • 打赏
  • 举报
回复
用Wincap可以实现。你看一下Wincap的API
rendao0563 2010-04-13
  • 打赏
  • 举报
回复

#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <tchar.h>
#include <pdh.h>
#pragma comment ( lib , "Pdh.lib" )
#define MAXPATH 80
int __cdecl _tmain (int argc, TCHAR **argv)
{
HQUERY hQuery;
HCOUNTER *pCounterHandle;
PDH_STATUS pdhStatus;
PDH_FMT_COUNTERVALUE fmtValue;
DWORD ctrType;
CHAR szPathBuffer[MAXPATH] = {0};
int nRetCode = 0;
// Open the query object.
pdhStatus = PdhOpenQuery (0, 0, &hQuery);
pCounterHandle = (HCOUNTER *)GlobalAlloc(GPTR, sizeof(HCOUNTER));
/*
\\\\Processor(_Total)\\\\% Processor Time CPU使用率
\\\\System\\\\Processes 当前系统进程数
\\\\System\\\\Threads 当前系统线程数
\\\\Memory\\\\Commit Limit 总共内存数K (包括虚拟内存)
\\\\Memory\\\\Committed Bytes 已用内存数K (包括虚拟内存)
\\\\TCP\\\\Connections Active 系统中已建立的 TCP连接个数
\\\\其它Object Items 可以利用PdhEnumObjects()和PdhEnumObjectItems()得到
*/
// strcat(szPathBuffer,\"\\\\System\\\\Processes\");
// pdhStatus = PdhAddCounter (hQuery, szPathBuffer, 0, pCounterHandle);
//得到QQ进程的CPU占用率,这句出错
pdhStatus = PdhAddCounter(hQuery,\"\\\\Process(QQ)\\\\% Processor Time\",0,pCounterHandle);
// \"Prime\" counters that need two values to display a
// formatted value.
pdhStatus = PdhCollectQueryData (hQuery);
// Get the current value of this counter.
pdhStatus = PdhGetFormattedCounterValue (*pCounterHandle, [Page]
PDH_FMT_DOUBLE,
&ctrType,
&fmtValue);

//fmtValue.doubleValue为所要的结果
if (pdhStatus == ERROR_SUCCESS) {
printf (TEXT(\",\\\"%.20g\\\"\\n\"), fmtValue.doubleValue);
}
else {
// Print the error value.
printf (TEXT(\"error.\\\"-1\\\"\"));
}
// Close the query.
pdhStatus = PdhCloseQuery (hQuery);
return nRetCode;
}


自己整理下。主要就是PDH。
Setheo 2010-04-13
  • 打赏
  • 举报
回复
再顶一次.. 继续求解.
jadyzdr 2010-04-12
  • 打赏
  • 举报
回复
我不会,但是我顶
sonic_go 2010-04-12
  • 打赏
  • 举报
回复
好问题,顶!!!
Setheo 2010-04-12
  • 打赏
  • 举报
回复
顶上去.. 求解阿..
通过性能监控工具nmon的学习,清楚的了解Linux服务器资源CPU、磁盘、内存、网络、进程之间的关联,了解nmon监控结果的字段的含义以及影响,更重要的是通过熟悉监控结果中字段数据的由来,理清性能测试的分析思路,学会性能测试的分析方法。 课程内容:第一章:课程简介课程介绍课程大纲第二章:nmon介绍nmon简介nmon下载nmon安装nmon屏幕统计-交互模式nmon数据统计-数据收集模式nmon进程关闭nmon分析工具nmon数据文件解析第三章:nmon数据分析SYS_SUMM【系统资源汇总】AAA【服务器基本信息】BBBP【Linux执行的命令和结果】CPU_ALL【所有CPU数据的概述】CPU_SUMM【每个CPU的整体占用情况】CPU001【CPU001的每个时间点占用情况】DISK_SUMM【磁盘的吞吐量和IOPS】DISKBSIZE【磁盘块信息】DISKBUSY【磁盘的繁忙情况】DISKREAD【磁盘的读取操作速率】DISKXFER【磁盘的I/0传输速率】JFSFILE【JFS文件空间使用百分比】MEM【内存】VM【虚拟内存】NET【网络数据传输速率】NETPACKET【网络数据包】PROC【进程】TOP【PID进程相关的CPU/内存等】 课程提供的下载资料:包含通过nmon收集的Linux服务器资源信息ecs-lc_220715_1019.nmon文件,大家在没有Linux服务器的情况下,可以通过对这个文件进行nmon数据解析和数据分析的学习。 

64,643

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧