0
我需要在java中獲得網速(每秒上傳和下載)。我目前正在使用Sigar和Oshi圖書館,但他們沒有一個能夠顯示我想要的速度。如何在java中獲取網速和CPU溫度
在網絡上,我發現this類使用Sigar來查看連接速度,但我發現這些值完全錯誤。
使用Oshi我無法找到每秒的速度。
有幫助嗎?
我需要在java中獲得網速(每秒上傳和下載)。我目前正在使用Sigar和Oshi圖書館,但他們沒有一個能夠顯示我想要的速度。如何在java中獲取網速和CPU溫度
在網絡上,我發現this類使用Sigar來查看連接速度,但我發現這些值完全錯誤。
使用Oshi我無法找到每秒的速度。
有幫助嗎?
您需要更新網絡統計
你需要劃分對經過的時間接收的字節數量
睡眠/等待時間稍久,您將獲得更好的結果。 Java中有一些有趣的事實,其中之一就是要求Nms的睡眠時間不會讓線程在這段時間內睡眠(這更多的是要求線程「睡得儘可能接近Nms,因爲你能夠「)。
代碼應該看起來更像:
long download1 = net.getBytesRecv();
long timestamp1 = net.getTimeStamp();
Thread.sleep(2000); //Sleep for a bit longer, 2s should cover almost every possible problem
net.updateNetworkStats(); //Updating network stats
long download2 = net.getBytesRecv();
long timestamp2 = net.getTimeStamp();
System.out.println("prova " + (download2 - download1)/(timestamp2 - timestamp1));
//Do the correct calculations
該解決方案是與here庫oshi。感謝YoshiEnVerde
Sigar(界面總字節數)與speedtest(此文件傳輸的每秒兆比特數)之間有什麼不匹配。要獲得類似的「每秒最大字節數」類型的測量,您必須啓動一個計時器,做一些佔用大量帶寬,停止計時器......然後決定有多少字節,並將其分開花了多長時間。 – Gus
首先感謝您糾正這個帖子,我的英文不太好 我的程序必須監控互聯網上的任何程序的速度(如果我從鉻下載的東西,我想顯示當前的速度在我的程序)。 –
與Windows任務管理器一樣,在性能選項卡中 –