transm
一个简易的使用服务端(tss
)作为中转中心,间接在两个(多)客户端(tsc
)之间传输文件的工具。
平台支持:Windows
、Linux
、MacOS
、Termux
、iPhone iSh
及理论上其他任意支持c++17
标准编译器的平台。
低版本编译器,可选择boost
+c++11
标准组合。
注:使用安装包的用户,如果想变更安装位置的话,请先卸载旧版本(原位置更新新版不用)。
一、简要介绍
主要功能序号 | 简介 |
---|---|
1 | A端提交文件列表到服务端,B端可以从服务端查阅有哪些客户端提交的哪些任务,自行选择下载。 |
2 | A端可以提交一个下载任务文件给B端,B端会自动下载列表中的文件(可用作更新远端文件)。 |
-
tss
和tsc
均为命令行端程序,无GUI。 -
tsc
从tss
下载文件的时候,如果本地有已存在则会被覆盖(注意)。 -
介绍所指的客户端
A
、B
是泛指,实际服务端程序支持任意个客户端相互之间同时连接和同时传输文件,吞吐瓶颈在服务端主机网络上。
一些特点(基于最新版本)
- 通配符传输。
- 终端自动文件补全。
- 自动更新远程文件。
- 多客户端可以同时互相收发文件。
- 自动检测对方掉线。
- 服务端自我安全防御(若部署到云端防止常规攻击)。
- 广泛的平台支持。
- 服务端仅转发数据,不存储数据。
- 极小的、单个文件。
- 干净,不会在客户机环境到处遗留临时文件。
- 运行时无其他三方二进制库依赖。
- 临时公网传输,无需使用三方需要登陆软件。
Linux
到Linux
文件传输保留原权限。
二、使用说明
1.程序启动
- 对于服务端程序
tss
,绑定默认绑定0.0.0.0
的9898
端口,如果需要修改端口,使用参数启动,示例:tss 9898
。 - 对于客户端程序
tsc
,请使用tsc --help
查看使用方式。 Up
指令后面的文件名路径,如果是非全路径(即相对路径),程序会自动拼接到当前tsc
工作目录(如Up dira/test.txt
也是可以的)。
2.命令使用(截图可能过时,但使用方式大致如此)
2.1 客户端 tsc 简介
2.2 功能一简介
2.3 功能二简介
3.1 Get功能
v1.2.3
版本起(含),当某个客户端的列表文件数量过多时,只展示部分(会显示总数量)。
3.2 Up功能
v1.2.3
版本起(含),up
后路径支持?
和*
通配符:
up /home/zhang/png/cloud*.png|/home/zhang/download/202?-*.exe
3.3 Down功能
v1.2.3
版本起(含),支持传入下载位置(默认命令所在目录):
down 1 dira/dirb
down 1 ../download
down 2 /home/zhang/document
3.4 Update功能
命令格式为:Update 客户端标号 列表文件
Update
的提交的列表文件格式为txt
,内容为每一行格式是A|B
,其中A
为提交端的文件路径,B
为要放到下载端的哪个目录 (下载端必须存在这个目录,否则下载端拒绝自动下载)。
示例执行:Update 1 task.txt
,其中task.txt
内容示例如下:
D:/文件/abc.zip|/home/zhangsan/downlaod
D:/截图/Ni.jpg|/home/zhangsan/picture
update新增(一)
v1.2.1
版本起(含),task.txt
支持以下变量:
- ${HOME},用户目录(发送端接收端均支持)。
- ${CURRENT},任务文件所在目录(即
task.txt
所在目录,该变量仅支持发送端,也就是|
左侧,因为接收端没有任务文件所在路径)
${HOME}/截图/Ni.jpg|${HOME}/dira
${CURRENT}/xxx.zip|D:\
NOTE: 列表文件
的格式为UTF-8
编码。
注意
- 如果两个
tsc
客户端在同一台机器上同时收发同一个文件将导致文件丢失损坏(如果收发操作的是同一个文件)。
编译
当前项目支持xmake
和cmake
构建工具。
git clone --recursive https://www.sinxmiao.cn/taynpg/transm
1.常规编译
xmake:xmake
。
cmake:cmake -Bbuild -DCMAKE_BUILD_TYPE=Release
、cmake --build build --config Release
。
2.XP系统编译
前提
- 支持
XP
的msvc
编译器不支持新C++语法标准
,故使用mingw32
编译器。 - 支持
xp
的mingw32
编译器的c++17
标准的filesystem
模块还是实验性质且有编译BUG
,故使用boost-filesystem
。 - 需要一个最低
3.16
版本的cmake
。
编译
请参照:xp_build.bat
。
XP用户阅
xp
系统下,安装后(或者添加环境变量后),如果时第一次使用请先执行ansicon -i
以支持彩色显示,后续则不用再次执行(如果没有卸载过或变更安装位置)。- 使用安装包的用户,如果想变更安装位置的话,请先卸载旧版本(原位置更新新版不用)。
- 如果安装位置有变动或者单纯卸载
transm
,请先执行ansicon -u
再卸载。
Description
v1.5.1
Latest
Languages
C++
99.2%
C
0.6%
CMake
0.2%