mgsky1 发表于 2019-6-10 00:07:00

一个基于Python的局域网文件传输工具----Mercury

现在越来越多的本本开始减少甚至取消USB-A接口了,比如苹果的MacBook系列,以前习以为常的用U盘在临近的计算机之间传输文件也变得开始困难起来。
比如从Mac传文件到PC(现在的Mac大部分只有USB-C接口);或者本本的USB接口太少,亦或者有的本本接口位置设置不合理导致难插U盘的情况。
还有一种情况,比如家里有好几台电脑,想传文件又懒得用U盘,比如我{:10_277:}
你可能会想到QQ开个小号传文件什么的,但是这会局限于外网的带宽限制,不能发挥局域网的速度优势{:10_277:}
这时,可以试试这个用Python写的局域网文件传输工具----Mercury~{:10_254:}
在我的测试中,传输一个4.2GB大小的文件,大约需要15min,在网络环境良好的环境下(比如全是有线连接),速度可以提升至10min左右
主要用到的技术点:
1、多线程文件传输/下载
2、大文件(>100M)分块传输
3、文件下载后进行MD5验证
4、对目录进行递归扫描打包后进行传输,提升速度
使用方法:

    当本机作为服务器时:
    mercury -t client -p path -i serverIP [-P port -T threadnum -b buffer -n blocksize]
    当本机作为客户端时:
    mercury -t server -p path [-P port -T threadnum -b buffer -n blocksize]
    参数含义:
    -t or --type 表示类型(必须) 值:server/client
    -p or --path 表示文件路径(必须) 值:server端为文件路径 client端为目录
    -i or --ip   表示服务器地址(客户端时必须) 值:默认本机127.0.0.1
    -P or --port 表示程序要使用的端口号(可选) 值:默认9000
    -T or --threadnum 表示客户端同时接收的线程数(可选) 值:默认为2
    -b or --buffer 表示网络传输时的缓冲区大小(可选) 值:默认1M
    -n or --blocksize 表示文件的分块大小(可选) 值:默认100M

截图:
https://xxx.ilovefishc.com/album/201906/10/000328oxie4x117tv84579.png
下载地址:
**** Hidden Message *****
源码:
**** Hidden Message *****
还希望喜欢的鱼油多多支持~~{:5_109:}

heverst 发表于 2019-6-10 08:18:59

支持一下。。

将离 发表于 2019-6-10 08:48:15

{:10_297:}观摩观摩

jiazhiyu 发表于 2019-6-10 09:03:36

666

幽梦三影 发表于 2019-6-10 11:14:19

支持

【深蓝】 发表于 2019-6-10 11:38:25

学习一下

残缺的蚂蚁 发表于 2019-7-7 09:31:55

thk for share

呆头大哥 发表于 2019-7-9 07:46:20

观摩观摩

会陷进去 发表于 2019-8-3 15:23:46

{:5_102:}

一条der 发表于 2020-1-17 15:40:37

6666

qiuyouzhi 发表于 2020-1-19 15:10:28

学习

阿发1968 发表于 2020-2-15 13:46:43

学习嘻嘻

jason_teng888 发表于 2020-2-22 12:29:16

666

Robot_Steve 发表于 2020-5-5 22:02:16

支持一下

xiami030600 发表于 2020-10-15 14:55:46

111

guolishan8 发表于 2020-10-26 09:09:25

怒赞

whhhdsd 发表于 2021-12-24 14:41:22

能看下吗

zkyjay 发表于 2022-4-12 14:07:12

看卡

myqf123 发表于 2022-4-15 15:41:20

{:10_275:}

python52013 发表于 2022-5-4 23:07:13

支持
页: [1] 2
查看完整版本: 一个基于Python的局域网文件传输工具----Mercury