2012-05-17 28 views
-1

我目前正在尋找一種方式,如何從Java獲取關於網絡利用率的實時數據。我想看看幾個正在運行的線程(所有從網上下載的東西)如何利用網絡,並且如果不符合某些標準,可以設置產生新線程的閾值。比方說,我創建了10個線程,都從網上下載一些東西,網絡利用率將在5%以上,考慮先前設置的最高利用率爲10%的閾值,我將被允許產生一個新的線程。事情是,我不確定是否有辦法獲得這樣的網絡信息。任何幫助深表感謝。在Windows上觀看Java的網絡使用級別

+0

這很可能是操作系統特定的。你需要支持哪些操作系統? – NPE

+0

對不起,完全忘了寫我在Windows上開發這個。我修改了主題名稱... –

回答

2

如果您正在使用Linux,您應該能夠從/proc/net的系統文件中讀取此信息。例如,/proc/net/dev

Inter-| Receive            | Transmit 
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed 
    lo: 108751031 226504 0 0 0  0   0   0 108751031 226504 0 0 0  0  0   0 
wlan0: 113355689 146027 0 0 0  0   0   0 18453619 122751 0 0 0  0  0   0 
    eth0:  0  0 0 0 0  0   0   0  0  0 0 0 0  0  0   0 

此文件很容易閱讀幾乎任何編程語言,包括Java。

注意:現在問題已經改變,明確指向Windows。所以這不再是一個完全合適的答案。

+0

感謝您的回覆。這真的很有用。有沒有如何在Windows上做這樣的事情? –

+0

10年前我停止使用Windows方式。但是它從來沒有在Linux上鼓吹過這種風格的系統API的「一切都是文件」的Unix理念。我相信你將不得不使用一些本地DLL來獲取等效數據,但也許有人已經爲此寫了一個JNI。 –