나는 자바를 사용하여 다운로드 속도를 계산하기 위해 다음 코드를 작성했다. 하지만 올바른 결과를 제공하지 않습니다. 문제점은 무엇입니까? 내 논리에 문제가 있습니까? 아니면 Java 네트워킹 클래스 사용에 문제가 있습니까? Java 네트워킹 클래스 사용에 문제가 있다고 생각합니다. 아무도 할 수 없습니다. 문제가 정확히 무엇인지 말해 주시겠습니까? 컨텐츠 크기이기 때문에 코드에 많은 문제가 있습니다네트워크 다운로드 속도 계산
/*Author:Jinu Joseph Daniel*/
import java.io.*;
import java.net.*;
class bwCalc {
static class CalculateBw {
public void calculateUploadBw() {}
public float calculateDownloadRate(int waitTime) throws Exception {
int bufferSize = 1;
byte[] data = new byte[bufferSize]; // buffer
BufferedInputStream in = new BufferedInputStream(new URL("https://www.google.co.in/").openStream());
int count = 0;
long startedAt = System.currentTimeMillis();
long stoppedAt;
float rate;
while (((stoppedAt = System.currentTimeMillis()) - startedAt) < waitTime) {
if (in .read(data, 0, bufferSize) != -1) {
count++;
} else {
System.out.println("Finished");
break;
}
}
in .close();
rate = 1000 * (((float) count*bufferSize*8/(stoppedAt - startedAt)))/(1024*1024);//rate in Mbps
return rate;
}
public float calculateAverageDownloadRate() throws Exception{
int times[] = {100,200,300,400,500};
float bw = 0,curBw;
int i = 0, len = times.length;
while (i < len) {
curBw = calculateDownloadRate(times[i++]);
bw += curBw;
System.out.println("Current rate : "+Float.toString(curBw));
}
bw /= len;
return bw;
}
}
public static void main(String argc[]) throws Exception {
CalculateBw c = new CalculateBw();
System.out.println(Float.toString(c.calculateAverageDownloadRate()));
}
}
링크를 통해서가 아니라 여기에 코드를 게시하십시오. –
그래서 어떤 결과가 나옵니까? –
내가 시간을 늘리면 결과가 증가합니다 –