那句该死的return(readresp('2', ctrl));
折腾了我一个多礼拜了
不注掉 return(readresp('2', ctrl)); 确实会出现 请求服务器没有的包 就阻塞的现象
========
从头捋
loader有两种下载方式
1.下载完整的installer包 里面是所有的东西 并解压
2.用户已经装过installer包了 只需要核对version文件更新相应的部分文件即可
之前错误的记录是
注释掉 return(readresp('2', ctrl));采用2号方式 黑屏 需要下载几个 小文件 但是只能下一个 下了无法解压 下载完全 这里试过只下一个文件 还是有错 是因为默认会加个 version.xml 所以这个问题 是 转载文里所说不能一次下多个文件导致的
不注释return(readresp('2', ctrl)); 采用1号方式 下载完毕后 ftpclose里无法返回(像是停在里面了 具体停哪里跟不到 程序也没有终止)这个也是 下载完全但是不解压
===================
先确认下之前的两种错误 是否真的由这句return(readresp('2', ctrl));引起 。。测外网好麻烦 内网什么问题都没有的。。
==========
最终修改方案
把ftplib给改了 都是ftpclose 里面return那里惹得麻烦 把它改成 根据下载单个文件 还是多个文件 决定return(readresp('2', ctrl));这句 留还是不留
单个文件下载 注释掉return(readresp('2', ctrl));
下载多个 不注释return(readresp('2', ctrl));
c不能有重载 就重新写了 加了一个参数的ftpclose
其他地方调用 的ftpclose也做相应修改 比如 ftpaccess
但是ftpXfer 这里 就 强行指定了 1 反正也没被用到
也就是说ftplib里面外面用的 ftpclose 都增加了一个参数了
ps 这个库好老