linux下某程序中实现对进程的实时流量监控功能

问题描述

linux下某程序中实现对进程的实时流量监控功能

求大牛赐教

现在开发了一个程序,在linux下跑,想在里面加一个对特定进程的网络流量监控,实时统计进程流量大小

现在想到的办法就是用libpcap库,对应/proc里面文件按照pid 端口号 数据包 数据大小 进行统计得出当前流量大小。

目前有如下问题:
1.程序中已有功能中已经使用了libpcap去抓去一段数据包然后输出libpcap文件,如果按照上述办法,会不会造成再用libpcap采集数据包出问题?或者说libpcap可不可以多次同时抓取同一个数据包?
2.一定要在程序内部实现,目前知道的的可监听端口的软件,都有独立的显示界面,没有办法后台运行然后把统计信息放到我自己的程序里面,有没有可行的软件可以通过我自己的程序去调用然后获取统计信息?

要是都不行。。。linux怎么通过api获取进程网络流量信息或者数据包。。。

求解

解决方案

http://369369.blog.51cto.com/319630/805726/

解决方案二:

既然已有libcap,那么就抓同一份好了,只是你多分析一次。如果现有抓的包不满足的需求,那么就你再多抓电包。
无非就是一个时间内的包个数,然后计算流量。

时间: 2024-10-31 05:31:13

linux下某程序中实现对进程的实时流量监控功能的相关文章

在Python程序中实现分布式进程的教程

  这篇文章主要介绍了在Python程序中实现分布式进程的教程,在多进程编程中十分有用,示例代码基于Python2.x版本,需要的朋友可以参考下 在Thread和Process中,应当优选Process,因为Process更稳定,而且,Process可以分布到多台机器上,而Thread最多只能分布到同一台机器的多个CPU上. Python的multiprocessing模块不但支持多进程,其中managers子模块还支持把多进程分布到多台机器上.一个服务进程可以作为调度者,将任务分布到其他多个进

Linux下如何知道文件被那个进程写

本文链接地址: Linux下如何知道文件被那个进程写 一个问题:(想想能解决不?) "一个文件正在被进程写 我想查看这个进程 文件一直在增大 找不到谁在写 使用lsof也没找到" 这个问题挺有普遍性的,解决方法应该很多,这里我给大家提个比较直观的方法. linux下每个文件都会在某个块设备上存放,当然也都有相应的inode, 那么透过vfs.write我们就可以知道谁在不停的写入特定的设备上的inode. 幸运的是systemtap的安装包里带了inodewatch.stp,位于/us

Linux下c++编程中,STL模板的使用。

问题描述 Linux下c++编程中,STL模板的使用. Linux下c++编程,使用STL模板,为什么只识别#include 而不识别#include ? 程序中只要有#include 就会报无数多个错! 解决方案 难道c++标准模板库STL中没有包含queue,你可以去根目录去看看include头文件中有没有queue.h 解决方案二: STL头文件目录是否被include进项目中,如果自己写makefile的话,查看下INCLUDE的目录,如果IDE的话就查看下项目设置中的include选项

Linux下c++程序内存泄漏检测代码范例

Linux下对于程序内存泄漏检测的方法很多,最常用的的莫过于使用valgrind工具.但是valgrind相当于让程序在虚拟机中运行,会带 来较大的系统资源开销,还会对程序的运行效率产生较大影响,对于那种资源占用大的程序,如果需要长时间运行才能暴露的泄漏问题,它就显得不太好用. linux下的c++程序中自己实现一个轻量级的泄漏检测代码其实是比较方便的,下面我就给出一个简单的范例,并作简单的说明.当然,我们还是应该提倡使用共享指针,用共享指针自动管理内存可以避免内存泄漏这样的不必要的麻烦. 基本

总结UNIX/LINUX下C++程序计时的方法_C 语言

前言 良好的计时器可帮助程序开发人员确定程序的性能瓶颈,或对不同算法进行性能比较.但要精确测量程序的运行时间并不容易,因为进程切换.中断.共享的多用户.网络流量.高速缓存访问及转移预测等因素都会对程序计时产生影响. 下面看看小编为大家整理几个计时方法 方法一: 如果是想统计某个程序的运行时间,那么可以使用 time ./a.out 方法二: 如果是想对某个函数或者语句进行计时,那么有别的方法.比如说,gettimeofday函数.直接贴示例代码: #include <sys/time.h> v

Linux下C程序的编辑,编译和运行以及调试

国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送)国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为"中国PE第一股",市值超1000亿元.  -----------------------------------------------------------------------------

多线程-linux 下c 程序,开了1024个线程 依次等待共同完成某个任务,程序异常退出,不出core

问题描述 linux 下c 程序,开了1024个线程 依次等待共同完成某个任务,程序异常退出,不出core 程序简单来说类似一个多线程下载器,开了1024个线程,然后并发去服务器读取一个大文件的某一块,读取完成后,文件合并要按照顺序写文件,所以我采用了pthread_join依次等待上一个线程写完成操作.测试时候发现程序偶尔会突然down掉,也不出core,并不是总down,也会有成功执行时候.机器配制足够高了,内存96G,24核cpu...希望大家帮忙分析下..谢谢,代码逻辑如下. void*

编程-python问题求解,怎么在程序中结束整个进程?

问题描述 python问题求解,怎么在程序中结束整个进程? tb=myblock()def my_block(): tb.Start(True) tb.Wait()t=threading.Thread(target=my_block)t.setDaemon(True)t.start()start_time=time.time()while True: print ""susccess"" print time.time() if int(time.time()-st

急急急解决掉割了-linux下fortran程序调试

问题描述 linux下fortran程序调试 如何在linux下进行fortran程序的调试?如何设置短点?如何读取参数? 解决方案 http://emuch.net/html/201111/3842995.html 解决方案二: linux程序调试Linux程序调试Linux程序调试