2017-10-21 52 views
0

有没有一种方法可以从java程序本身内部监控网络流量(字节传输,数据包计数)?Java:从App内部本身运行Java App的网络统计

我想基准第三方应用程序(IBM Domino DIIOP)。没有办法将自定义网络套接字等传递给库。基准应用程序在Windows/Linux上运行。现在我正在使用Wireshark进行监控,但这很复杂且耗时。 Wireshark对网络性能有负面影响,所以它不是基准测试的最佳选择。

是否有纯Java解决方案可以在Windows和/或Linux上运行?

回答

0

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

有几种方法:

  1. 可以监视插座。请参阅以下article。互联网上还有一些图书馆。
  2. 您可以使用AspectJ的运行时编织来拦截具有AOP的调用并计算统计信息。

不过你应该记住,并不是所有的统计数据都可以从应用程序中收集到。网络通信委托给操作系统,应用程序通常不知道传输细节。

传输的字节

可以计算读取和写入的应用程序而不是通过网络传输的字节的实际数量字节。因为它是网络协议驱动程序的责任,形成和传递数据包

包计数

包计数不能从应用程序。