2017-10-21 86 views
0

有沒有一種方法可以從java程序本身內部監控網絡流量(字節傳輸,數據包計數)?Java:從App內部本身運行Java App的網絡統計

我想基準第三方應用程序(IBM Domino DIIOP)。沒有辦法將自定義網絡套接字等傳遞給庫。基準應用程序在Windows/Linux上運行。現在我正在使用Wireshark進行監控,但這很複雜且耗時。 Wireshark對網絡性能有負面影響,所以它不是基準測試的最佳選擇。

是否有純Java解決方案可以在Windows和/或Linux上運行?

回答

0

有沒有辦法從java程序本身監控網絡流量?

有幾種方法:

  1. 可以監視插座。請參閱以下article。互聯網上還有一些圖書館。
  2. 您可以使用AspectJ的運行時編織來攔截具有AOP的調用並計算統計信息。

不過你應該記住,並不是所有的統計數據都可以從應用程序中收集到。網絡通信委託給操作系統,應用程序通常不知道傳輸細節。

傳輸的字節

可以計算讀取和寫入的應用程序而不是通過網絡傳輸的字節的實際數量字節。因爲它是網絡協議驅動程序的責任,形成和傳遞數據包

包計數

包計數不能從應用程序。