Java:从应用程序本身内部运行Java应用程序的网络统计信息



有没有办法从java程序本身内部监控网络流量(传输的字节数,数据包计数)?

我想对第三方应用程序(IBM Domino DIIOP)进行基准测试。无法将自定义网络套接字等传递给库。基准测试应用程序在 Windows/Linux 上运行。现在我正在使用Wireshark进行监控,但这既复杂又耗时。Wireshark会对网络性能产生负面影响,因此它不是基准测试的完美选择。

有没有一个纯粹的Java解决方案可以在Windows和/或Linux上运行?

有没有办法从java程序本身内部监控网络流量?

有几种方法:

  1. 您可以监视套接字。请参考以下文章。互联网上也有许多图书馆。
  2. 您可以使用 AspectJ 的运行时编织来拦截带有 AOP 的调用并计算统计信息。

您仍然应该记住,并非所有统计信息都可以从应用程序中收集。网络通信委托给操作系统,应用程序通常不知道传输详细信息。

传输的字节数

您可以计算应用程序读取和写入的字节数,但不能计算通过网络传输的实际字节数。

数据包计数

数据包计数从应用程序不可用,因为网络协议驱动程序负责形成和传递数据包。

相关内容

  • 没有找到相关文章

最新更新