本帖最后由 xyx115 于 2019-7-3 13:44 编辑
从服务器上下载一个1kb的校验信息。每次下载都要等待30秒以上。反而50多M的文件,只需要10多秒。
___InetGet_Down_Client_verification_function() ; 下载客户端校验信息
Func ___InetGet_Down_Client_verification_function() ; 下载客户端校验信息
$Doinfo[16][1] = 'http://192.168.1.106:8001/DownloadContent/Calibration_information.iso'
$Doinfo[25][1] = 'L:\Client_Download\DC001\Ser001_192.168.1.106.iso'0
If Not FileExists($Doinfo[7][1]) Then DirCreate($Doinfo[7][1])
Local $Time = TimerInit()
Local $size = InetGetSize($Doinfo[16][1])
Local $hDownload = InetGet($Doinfo[16][1], $Doinfo[25][1], 1)
Do
Sleep(250)
Local $if = InetGetInfo($hDownload, -1)
If Not @error Then
Local $s = Int($if[0] / (TimerDiff($Time) / 1000) / 1024)
$Doinfo[9][1] = $s & 'KB'
$Doinfo[10][1] = Int($if[0] / $size * 100) & '%'
$Doinfo[11][1] = $if[0]
$Doinfo[12][1] = $if[1]
$Doinfo[13][1] = $if[2]
$Doinfo[14][1] = $if[3]
$Doinfo[15][1] = $if[4]
EndIf
Until InetGetInfo($hDownload, 2)
EndFunc ;==>___InetGet_Down_Client_verification_function
上面的代码是InetGet。
InetRead ($Doinfo[16][1], =1 )
也是一样的慢。
关键:需要强制从服务器上下载最新的,不能读取缓存。
折腾好几天了,都没有好的方法。后缀名换成.rar的时候,感觉有时候会快一点,但是再试的时候,速度又不行了。.txt格式的,每次下载都会卡顿很久
大家有没有什么好方法,JS脚本也行。或者多线程也行。多线程我折腾了下载客户端可以,但是下载这个小校验文件,会频繁的报下载错误。_CoProc("___CoProc_Down_Batch_download_function", $TempDownlInfo)
问题已解决。Until $INET_DOWNLOADCOMPLETE如下一楼所示。
|