xyx115 发表于 2019-7-3 13:13:46

小文件下载慢,InetGet,inetread都慢,怎么解决[已解决]

本帖最后由 xyx115 于 2019-7-3 13:44 编辑

从服务器上下载一个1kb的校验信息。每次下载都要等待30秒以上。反而50多M的文件,只需要10多秒。


___InetGet_Down_Client_verification_function() ;                              下载客户端校验信息


Func ___InetGet_Down_Client_verification_function() ;                              下载客户端校验信息

      $Doinfo = 'http://192.168.1.106:8001/DownloadContent/Calibration_information.iso'
      $Doinfo = 'L:\Client_Download\DC001\Ser001_192.168.1.106.iso'0

      If Not FileExists($Doinfo) Then DirCreate($Doinfo)
      Local $Time = TimerInit()
      Local $size = InetGetSize($Doinfo)

      Local $hDownload = InetGet($Doinfo, $Doinfo, 1)
      Do
                Sleep(250)
                Local $if = InetGetInfo($hDownload, -1)
                If Not @error Then
                        Local $s = Int($if / (TimerDiff($Time) / 1000) / 1024)
                        $Doinfo = $s & 'KB'
                        $Doinfo = Int($if / $size * 100) & '%'
                        $Doinfo = $if
                        $Doinfo = $if
                        $Doinfo = $if
                        $Doinfo = $if
                        $Doinfo = $if
                EndIf
      Until InetGetInfo($hDownload, 2)


EndFunc   ;==>___InetGet_Down_Client_verification_function


上面的代码是InetGet。

InetRead ($Doinfo, =1 )也是一样的慢。

关键:需要强制从服务器上下载最新的,不能读取缓存。
折腾好几天了,都没有好的方法。后缀名换成.rar的时候,感觉有时候会快一点,但是再试的时候,速度又不行了。.txt格式的,每次下载都会卡顿很久

大家有没有什么好方法,JS脚本也行。或者多线程也行。多线程我折腾了下载客户端可以,但是下载这个小校验文件,会频繁的报下载错误。
_CoProc("___CoProc_Down_Batch_download_function", $TempDownlInfo)

问题已解决。Until $INET_DOWNLOADCOMPLETE如下一楼所示。




xyx115 发表于 2019-7-3 13:37:16

本帖最后由 xyx115 于 2019-7-3 13:43 编辑




___InetGet_Down_Client_verification_function() ;                              下载客户端校验信息


Func ___InetGet_Down_Client_verification_function() ;                              下载客户端校验信息

      $Doinfo = 'http://192.168.1.106:8001/DownloadContent/Calibration_information.iso'
      $Doinfo = 'L:\Client_Download\DC001\Ser001_192.168.1.106.iso'0

      If Not FileExists($Doinfo) Then DirCreate($Doinfo)
      Local $Time = TimerInit()
      Local $size = InetGetSize($Doinfo)

      Local $hDownload = InetGet($Doinfo, $Doinfo, 1)
      Do
                Sleep(250)
                Local $if = InetGetInfo($hDownload, -1)
                If Not @error Then
                        Local $s = Int($if / (TimerDiff($Time) / 1000) / 1024)
                        $Doinfo = $s & 'KB'
                        $Doinfo = Int($if / $size * 100) & '%'
                        $Doinfo = $if
                        $Doinfo = $if
                        $Doinfo = $if
                        $Doinfo = $if
                        $Doinfo = $if
                EndIf
      Until $INET_DOWNLOADCOMPLETE


EndFunc   ;==>___InetGet_Down_Client_verification_function







问题解决。Until$INET_DOWNLOADCOMPLETE

tarcy118 发表于 2019-7-4 21:59:31

不错支持一下

blue003 发表于 2019-7-6 15:24:05

学习了,谢谢

adev8088 发表于 2019-7-9 06:30:09

进来学习一下
页: [1]
查看完整版本: 小文件下载慢,InetGet,inetread都慢,怎么解决[已解决]