尽管Windows
系统的远程桌面连接功能支持机器之间的复制,但是在传送大量小文件的时候,还是比较慢的。因此,打算用Python
写个小工具来比较一下。所有的代码还没有测试,这个得等到下一轮我更新文件的时候再测吧!
该工具使用socket
连接在机器之间复制文件,还有更先进的基于Python
语言的第三方库可以替代它。
使用先进的消息队列ZMQ
在机器之间复制文件
所有的代码还不曾测试过 !
下面是局域网内的测试片段,最慢 8
分多钟传完。嗯,的确比远程桌面连接下复制文件快得多。
PULL-PUSH
模式,使用起来很方便,但是PUSH
socket类型端,无法从对端获取消息是否接收成功的确认
添加DEALER-REP
socket 类型,REP
socket类型在向对端回复消息的时候会带有地址。基本上可以用来解决PULL-PUSH
模式无法获取确认的问题了
简单地尝试了一下REQ-ROUTER
socket,要求最开始要由 REQ
对端发起(这也是这种组合模式的要求)。而 REQ
对端事先并不知道请求的文件是否存在,这就需要REQ
在接受到消息后,对消息进行判断了
前一个版本,文件发送方无法知道何时退出。而最佳退出时机,由文件接收方通知最为合适。因此,添加了 PULL-PUSH
socket 类型,用于发送/接收退出的通知
- 更正类型转换时的一个错误。
- 更正一个继承了父类的子类的写法错误
- 添加了
DEALER
和ROUTER
socket 对儿的用法
给各个类的发送函数加个装饰器,用以统计发送速率
错误地使用 PULL-PUSH
socket 对儿,这种组合模式,虽是一发多收,但是每一条消息,只能被某一个对端接收。修改为 SUB-PUB
socket组合