如何在java中获得internet速度和CPU温度

如何在java中获得internet速度和CPU温度,java,intellij-idea,networking,sigar,oshi,Java,Intellij Idea,Networking,Sigar,Oshi,我需要用java获得互联网速度(每秒上传和下载)。我目前正在使用Sigar和Oshi库,但它们都没有显示我想要的速度 在网络上,我发现类使用Sigar查看连接速度,但我发现值完全错误 有了Oshi,我找不到每秒的速度 要帮忙吗 在intellij控制台中,与speedtest相比,这些值是错误的: 您需要更新网络统计信息 您需要除以在经过的时间内接收到的字节数 睡久一点/等久一点,你会得到更好的结果。 Java有几个有趣的事实,其中之一是请求Nms的睡眠时间不一定会让线程睡眠那么长的时间(更多的

我需要用java获得互联网速度(每秒上传和下载)。我目前正在使用Sigar和Oshi库,但它们都没有显示我想要的速度

在网络上,我发现类使用Sigar查看连接速度,但我发现值完全错误

有了Oshi,我找不到每秒的速度

要帮忙吗

在intellij控制台中,与speedtest相比,这些值是错误的:
您需要更新网络统计信息

您需要除以在经过的时间内接收到的字节数

睡久一点/等久一点,你会得到更好的结果。 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

此解决方案与oshi库一起使用。多亏了YoshiEnVerde

您从Sigar(接口总字节数)获得的数据与您从speedtest(此文件传输的每秒兆字节数)获得的数据不匹配。要获得类似“每秒最大字节数”的测量值,您必须启动计时器,执行一些占用大量带宽的操作,停止计时器。。。然后决定需要多少字节,然后除以所用的时间。首先感谢你纠正这篇帖子,我的英语不太好,我的程序必须监控互联网上任何程序的速度(如果我从chrome下载了一些东西,我想在我的程序中显示当前速度)。就像在Windows任务管理器中一样,在“性能”选项卡中