0

我有一个基于 Java 的媒体服务器,可以将内容流式传输到网页和 Android 设备。它的设置可以供多个用户使用,还可以与其他服务器交谈并与他们共享媒体。

我希望能够通过媒体服务器中的服务监控总网络流量 (kb/s),这样我就可以通过我的 android 设备或网页查看它,而无需查看我的服务器。

有没有一种简单的方法可以使用 Java 获取这些信息?某种linux资源文件?我从谷歌搜索中查看了 netstat 和其他一些人,他们似乎并没有以明显的方式向我提供我想要的东西。我只需要总流量,我不需要知道谁在跟我说话。

谢谢你的帮助。:)

pps:我使用的是最新版本的 OpenSUSE,但在 Fedora 上也有工作版本(最新)。

4

1 回答 1

3

您可以从/proc/net/dev-- 查看http://linuxdevcenter.com/pub/a/linux/2000/11/16/LinuxAdmin.html了解网络统计信息。

你会看到这样的东西:

间| 接收 | 发送
 面对 |字节数据包错误丢弃 fifo 帧压缩多播|字节数据包错误丢弃 fifo colls 载波压缩
    洛:2504 30 0 0 0 0 0 0 2504 30 0 0 0 0 0 0
  eth0:33769785 2548318 0 0 0 0 0 0 4146854 215379 0 0 0 0 0 0
  eth1:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

因此,您需要打开文件,阅读每一行并检查第一列以找到您关心的接口,然后提取接收和/或发送的字节和/或数据包。如果您跟踪读取之间的时间,您可以这样计算速率:

Let = bytes at time = bytes at time ,比.
b0t0
b1t1t0

然后,您可以计算速率,r,如下所示:
r = (b1 - b0) / (t1 - t0)

于 2012-05-06T15:36:57.907 回答