java - 如何在 Linux 中测量特定端口的传输速度? (每秒位)

标签 java linux

我已经制作了一个可以测量特定网络接口(interface) (eth1) 速度的程序。

此程序是使用 java 和以下命令构建的:

cat /proc/net/dev 

此文件以字节为单位显示总包数和接收数据。

但我无法获取每个端口的数据。

如何获得每个端口的相似信息?

最佳答案

我假设您使用“端口”来描述 TCP 或 UDP 端口,因为您想要测量每秒有多少比特通过所有打开的 TCP 连接传输到远程端口 80。

不幸的是,没有简单的方法可以从 /proc 中提取此信息,因为内核不会保留每个端口的流量计数器。

如果真的要这么做,就需要用到深度包检测,自己统计。一个好的起点是 libpcappcap4j

关于java - 如何在 Linux 中测量特定端口的传输速度? (每秒位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31723662/

相关文章:

java - 找不到 com.oracle :ojdbc14:jar:10. 4.4

java - Okhttp.Builder 中的 ExceptionInInitializerError w/Multidex & Kitkat

linux - 使用 LIVE USB 引导通过 USB 进行串行通信

java - 创建名称为 '/' 的目录

linux - 具有 SDL 支持且没有 XWindows 的最小 Linux 发行版?

c++ - 如何在linux中用c++代码读取AT命令

linux - cmake 找不到环境变量

java - 升级到版本为 2017.2.1 的新服务器后, Artifact 列中出现 "No Artifacts"

java - 带有 HTML 文件的 URLConnection.getContent

java - 使用 Java ArrayList 在 Scala 中初始化 Java 列表