ftp可以传输什么类型文件_7个步骤,教你快速学会用python实现ftp文件传输功能(收藏了)...

bf981f60ae8364920975ac0a89e49f0a.png

文章主要为大家详细介绍了python实现ftp文件传输功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下!!!

本文实例为大家分享了python实现ftp文件传输的具体代码,供大家参考,具体内容如下

主要步骤可以分为以下几步:

  • 1.读取文件名
  • 2.检测文件是否存在
  • 3.打开文件
  • 4.检测文件大小
  • 5.发送文件大小和 md5值给客户端
  • 6.等客户端确认
  • 7.开始边读边发数据

服务器端代码:

04b485452910e6878ff006062ad00907.png

客户端代码:

d64f0b0901b0014c1fe5191b86dcc01e.png

用80M的文件传输测试,效果如下:

c1805076190d9e02dfffe81988d92bac.png

程序升级:

前面的代码还没添加md5进行验证,现在对代码进行升级

服务器端代码:

0504968eecb809c18800dc2219a74705.png

客户端代码:

45a7cf7e68b824d5f3ef9f98c225baff.png

两个程序在linux 环境下运行,结果如下:

6cb4a6b98791081c107fb147bb59243d.png

可以看到传输后文件大小变大了一点点,而且md5前后值也不同,说明文件传输发生了改变。

现在讲程序在windows环境下运行,结果如下:

bf738170d42ef520f4b72495ea9ee863.png

此时可以看到windows上没有问题,文件大小相同,且md5值也一致。

原因分析:

之所以会发生这种情况,是因为在linux上运行时,最后一次传输文件与发送md5值的时候,发生可粘包,导致最后一次接收文件的时候,连同md5的数据一并发送了。而客户端也当作一条接收信息,全部接收了。所以客户端出现没有收到来自服务器端的md5值,多出来的那一点点,就是md5值的大小。

解决方法:

在接收文件的时候,判断当前剩余多少文件需要接收,如果大于1024,就接收1024大小的文件,否则就只接收剩下全部的文件,防止最后一次接收多余的数据。

只需要对客户端代码进行修改,修改后代码如下:

cc87c9b0a4fc9e5d7812050420971c6e.png

以上就是本文的全部内容啦,更多相关内容关注小编敬请期待为你带来更优质的相关文章!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值