首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用C/C++实现Linux网络接口使用监控

用C/C++实现Linux网络接口使用监控
EN

Stack Overflow用户
提问于 2009-08-26 02:11:29
回答 3查看 7.1K关注 0票数 4

我处于带宽非常有限的情况下,必须将大部分带宽用于传输一种类型的测量数据。有时,我会发送大量这样的测量数据,而有时,我只是等待事件发生(所有这些都是通过TCP套接字实现的)。

我希望能够在后台以与我发回的测量值成反比的速度流出完整的数据捕获文件(与测量值不同)。

我正在寻找一种方法来监控多少字节正在发送出去的网络接口,在很大程度上是相同的系统监视器在Ubuntu上。系统监视器的源代码依赖于gnome库,由于我的程序是在嵌入式设备上运行的,因此我想减少使用的外部库的数量。有没有人知道用C/C++实现这一点的方法,而不需要在标准Linux发行版上使用很多额外的库?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-08-26 05:22:16

最简单的方法之一是解析文件: /proc/net/dev

我的内容包括:

代码语言:javascript
复制
Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
    lo:   44865    1431    0    0    0     0          0         0    44865    1431    0    0    0     0       0          0
  eth0:150117850  313734    0    0    0     0          0         0 34347178  271210    0    0    0     0       0          0
  pan0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0

然后,您可以编写一个解析器,它只使用C/C++库。

票数 4
EN

Stack Overflow用户

发布于 2016-05-07 23:36:06

可通过/sys/class/net/eth0/statistics/tx_bytes/sys/class/net/eth0/statistics/rx_bytes文件访问的传输和接收字节数。

代码语言:javascript
复制
$ cat /sys/class/net/net1/statistics/rx_bytes 
1055448
票数 3
EN

Stack Overflow用户

发布于 2009-08-26 06:23:58

使用RTNetLink接口套接字的NetLink套接字,它们会得到你所需要的结构net_device_stats格式

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1332031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档