我的需求是,当我正常的请求了一个网页文件后,需要在读取的时候,进行限速,我本来想说,在返回流中 for {} 里面判断的,但是,一旦里面sleep了以后,就断开了..请问有其他办法可以限速吗? 很需要精确到字节...感谢各位大婶的帮助...如果你知道,请尽量帮帮我
代码如下:
resp, err := GetDownloadResponse(url, referer, cookie, xxf)
defer resp.Body.Close()
buf := make([]byte, 1024)
for {
t1 := time.Now()
n, err := resp.Body.Read(buf)
if err != nil {
break
}
t2 := time.Now()
t3 := t2.Sub(t1)
fmt.Printf("t3.Seconds() : %f \n", t3.Seconds())
//tmp_speed * 1024 * 1024 每秒允许可以下的字节
mustspped := float64(n) - float64(tmp_speed)*t3.Seconds()
fmt.Printf("sudu : %d spped : %f \n ", tmp_speed, mustspped)
if mustspped > 0 {
mushsleep := mustspped / float64(tmp_speed)
fmt.Printf("mushsleep : %f \n", mushsleep)
time.Sleep(time.Duration(mushsleep) * time.Second)
}
}
有疑问加站长微信联系(非本文作者)