用while(nRead>0)
{
 nRead = read(size);
nTotalRead+=nRead;
nPercent = 100 * nTotalRead/filesize;
}
这种方法的话每次调动read系统向服务器发送请求、等待返回,读取数据等导致下载速度大幅下降,size小时发送和等待的开销大,而size大的时候进度条变化精度又小:(。
设想1,下载的时候向系统请求读取整个文件,而当系统读取了大于size的字节后返回,但后台继续下载,程序再次调动read的时候会从cache里面读取
设想2,下载的时候向系统请求读取整个文件,系统每读取到数据(一小段)都调动回掉函数告诉程序已经下载了多少
上面两个想法可以实现吗,或者有别的好方法吗?(不包含自己写一个socket类哦)