由于文件夹可能有多层目录,因此需要对其进行递归遍历。

本文采取了简单的协议定制,定义了五条命令,指令Head如下:

Sync:标识开始同步文件夹

End:标识结束同步

File:标识传输的文件名(相对路径)

Folder:标志文件夹(相对路径)

None:文件内容

每条命令以CMB_BEGIN开始,以CMB_END结束。

客户端需要对接收缓冲做解析,取出一条一条的指令,然后根据指令的Head做相应的处理,比如创建文件夹、写入文件等。

下面是服务端的代码:

Server在收到Client的某个信号之后(此代码中,当Client随便向Server发送任何内容都可),Server即会调用send_file_folder将sever文件夹下的内容全部发送给客户端。

服务端运行结果如下:

下面是客户端的代码:

客户端提取出来自Server的指令,当提取出Sync指令时,则将sourceDir目录清空,然后根据后续的指令,跟Server的文件夹进行同步。

客户端运行结果如下:

需要注意的地方:

Client写入文件时,需要以二进制的方式打开文件,否则,在传输二进制文件时可能出现错误或导致文件损坏。

经过测试,代码可以正常的运行,文件夹同步成功,文本文件、图像和其他类型的二进制文件均可正常传输。

原文链接:http://www.icodelogic.com/?p=516

python twisted框架_Python 基于Twisted框架的文件夹网络传输源码相关推荐

  1. python 法律检索_Python基于正则表达式实现检查文件内容的方法【文件检索】

    本文实例讲述了Python基于正则表达式实现检查文件内容的方法分享给大家供大家参考,具体如下: 这个是之前就在学python,欣赏python的小巧但是功能强大,是连电池都自带的语言.平时工作中用Ja ...

  2. python可见图算法_基于自适应显着性的图像分割(源码开放)

    点击上方"小白学视觉",选择"星标"公众号 重磅干货,第一时间送达 本文介绍算法的源码在github上给出 https://github.com/TimChin ...

  3. 基于流的EXCEL文件导出,SXSSFWorkbook源码解析

    当我们在实现excel导出时,在数据量过大的情况下,总是容易发生内存溢出的情况.我们可以使用POI提供的 SXSSFWorkbook 类来避免内存溢出. 注:基于POI4.10版本源码 以下是官方文档 ...

  4. Python图像识别实战(一):实现按数量随机抽取图像复制到另一文件夹(附源码和实现效果)

    前面我介绍了可视化的一些方法以及机器学习在预测方面的应用,分为分类问题(预测值是离散型)和回归问题(预测值是连续型)(具体见之前的文章). 从本期开始,我将做一个关于图像识别的系列文章,让读者慢慢理解 ...

  5. python pygame字体设置_Python基于pygame实现的font游戏字体(附源码)

    本文实例讲述了Python基于pygame实现的font游戏字体.分享给大家供大家参考,具体如下: 在pygame游戏开发中,一个友好的UI中,漂亮的字体是少不了的 今天就给大伙带来有关pygame中 ...

  6. 网站框架搭建——基于Django框架的天天生鲜电商网站项目系列博客(二)

    系列文章目录 需求分析--基于Django框架的天天生鲜电商网站项目系列博客(一) 网站框架搭建--基于Django框架的天天生鲜电商网站项目系列博客(二) 用户注册模块--基于Django框架的天天 ...

  7. php写网页6,基于ThinkPHP6+AdminLTE框架开发的响应式企业网站CMS系统PHP源码,ThinkPHP6开发的后台权限管理系统...

    源码介绍 基于最新ThinkPHP6+AdminLTE框架开发的响应式企业网站CMS系统PHP源码,基于最新版本的ThinkPHP 6.0.0RC3框架,后台前端框架采用AdminLTE.系统的核心理 ...

  8. java中的smm,java毕业设计_springboot框架的基于SMM框架的局域网文件共享及检索系统...

    这是一个基于java的毕业设计项目,毕设课题为springboot框架的基于SMM框架的局域网文件共享及检索系统, 是一个采用b/s结构的javaweb项目, 开发工具eclipsei/eclipse ...

  9. UCML-领先的B/S应用快速开发工具,基于组件重用和应用框架重用,支持.NET体系,直接生成C#源码;

    UCML-领先的B/S应用快速开发工具,基于组件重用和应用框架重用,支持.NET体系,直接生成C#源码:UCML涵盖了一个WEB应用系统业务开发的全过程,包括数据访问层(O/R映射)定义.业务框架开发 ...

最新文章

  1. Redis数据类型:散列类型
  2. linux系统硬盘表识
  3. SqlHelper全攻略
  4. 飞鹤乳业CIO:移动化让企业品牌和消费者紧密连接
  5. C++中的野指针问题
  6. P2597-[ZJOI2012]灾难【DAG支配树】
  7. mycat和应用程序集成_企业应用程序集成简介
  8. java中打开文件显示_在默认文件资源管理器中打开文件,并使用JavaFX或普通Java突出显示它...
  9. Linux系统7个运行级别图文详解
  10. AndroidStudio(7)---导入jar包方法
  11. json学习之三:JSONArray的应用
  12. [转载] python3 numpy函数_Python numpy总结(3)——常用函数用法
  13. maven项目建立pom xml报无法解析org apache maven plugins maven resource
  14. C++算法之 一句话推断一个整数是不是2 的整数次方
  15. GWR4 软件输入数据制作
  16. LP3667B反激式开关电源5W(5V1A)输出电路
  17. AGM FPGA选型手册
  18. linux netperf,Netperf性能测试工具
  19. 什么软件测试情侣头像,情侣头像另一半怎么找,请问什么软件可以找出
  20. arkit 人脸捕捉_iPhone X上的ARKit人脸追踪

热门文章

  1. FusionCharts破解版导出图片步骤
  2. 基于JAVA+SpringMVC+MYSQL的医院分诊挂号管理系统
  3. [转] @JoinColumn 详解 (javax.persistence.JoinColumn)
  4. STM32启动过程解析-2.02固件库启动文件分析
  5. CSS_照片墙例子 相对定位
  6. vsync信号产生与分发
  7. 监听滚动条和浏览器大小变化
  8. 乱码解决方案SecureCRT中文乱码解决方案
  9. Flex与.NET互操作(十六):FluorineFx + Flex视频聊天室案例开发
  10. ubuntu 16.04 编译android,Ubuntu 16.04 64bit 编译 Android 4.4 源码