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

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

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

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

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

服务器端代码:

9e35564bfb5f86517eb7d286e22676ae.png

客户端代码:

8781506d25615c908ed0415f2824ec5b.png

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

ac1be6505080d421aaf3c609192db250.png

程序升级:

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

服务器端代码:

26a70be63b7830da3a239e84fbf4c1a2.png

客户端代码:

b8b4d40df7441d2baf2a0d8e93990a94.png

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

9bb0b51a9e7f12a17801a91358049079.png

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

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

b7aed111d95a219b77b30470b2805c3b.png

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

原因分析:

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

解决方法:

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

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

f7f2fe03396d59ed96648e113e9d06d2.png

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

结尾

最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:“07”即可领取。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值