fucking ftplib

那句该死的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 这个库好老

 

你可能感兴趣的:(ftp)