Tin*_*a J 7 networking android android-networking speed-test
我正在尝试开发一个Android应用程序来衡量我的网络的上传和下载速度,这可能是我需要运行并每隔2秒钟对其进行一次配置.SpeedTest.netapp是一个理想的app工作方式,但它不是开源的.而且,我需要它每2秒运行一次.完成测试需要几秒钟.
我怎样才能做到这一点?目前我只是下载一个在互联网上找到的小型随机.txt文件,并size/time-to-download作为下载速率的衡量标准.但每次都会得到奇怪的结果.显然这种方法不起作用.
更新:下载完成.有关如何实现上传速度的任何建议?
您需要下载相当大的文件,需要至少15秒才能下载.文件越大,您获得的结果就越好.使用具有高可用性的永远在线服务器.另外,仅在网络呼叫时使用累积(我相信你必须使用一些套接字来while循环读取.所以请System.currentTimeMillis()在之前和之后socket.read()继续添加它们)
这几乎SpeedTest.net也是如此
就上传而言,你可以做同样的事情.一个粗略的伪代码:
upload (String remote, InputStream localfile){
Socket s = openDataConnection(remote);
OutputStream os = new BufferedOutputStream (s.getOutputStream(), MAX_BUFFER_SIZE);
byte[] buffer = new byte[MAX_BUFFER_SIZE];
long totalTime = 0L;
while((buffer = localfile.read())!= -1){
long startTime = System.currentTimeMillis();
os.write(buffer);
long endTime = System.currentTimeMillis();
totalTime += (endTime - startTime);
}
}
Run Code Online (Sandbox Code Playgroud)
要进行上传,您需要与服务器建立双向通信.我会用一个简单的循环来做到这一点:
while(x){
Starttime =getCurrentTime()
Sendfile() //Send a Xmb file that the server can verify
waitForVerification() // Wait for a reply from server.
compareCurrentTimeWithStartingTime() // compare the times.
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
470 次 |
| 最近记录: |