找回密码
 加入
搜索
查看: 1978|回复: 4

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

[复制链接]
发表于 2019-7-3 13:13:46 | 显示全部楼层 |阅读模式
本帖最后由 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如下一楼所示。




 楼主| 发表于 2019-7-3 13:37:16 | 显示全部楼层
本帖最后由 xyx115 于 2019-7-3 13:43 编辑
___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 $INET_DOWNLOADCOMPLETE


EndFunc   ;==>___InetGet_Down_Client_verification_function



问题解决。Until  $INET_DOWNLOADCOMPLETE
发表于 2019-7-4 21:59:31 | 显示全部楼层
不错支持一下
发表于 2019-7-6 15:24:05 | 显示全部楼层
学习了,谢谢
发表于 2019-7-9 06:30:09 | 显示全部楼层
进来学习一下
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-23 21:00 , Processed in 0.086641 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表