transm
一个简易的使用服务端(tss)作为中转中心,间接在两个(多)客户端(tsc)之间传输文件的工具。
平台支持:Windows、Linux、MacOS、Termux、iPhone iSh及理论上其他任意支持c++17标准编译器的平台。
低版本编译器,可选择boost+c++11标准组合。
注:使用安装包的用户,如果想变更安装位置的话,请先卸载旧版本(原位置更新最新版不用卸载)。
一、说明
注意: 当前说明文档仅针对v1.4.1及其以后的版本,此前的版本需要检出对应tag的README.md或者下载对应发布版本的源码,然后解压其中的README.md。
服务端程序支持任意个客户端相互之间同时连接和同时传输文件,吞吐瓶颈在服务端主机网络上。
tss和tsc均为命令行端程序,无GUI。
一些特点(基于最新版本)
- 通配符传输。
- 广泛的平台支持。
- 终端自动文件补全。
- 自动检测对方掉线。
- 极小的、单个文件。
- 支持相对路径处理。
- 单端可以操作下载发送。
- 支持单客户端操作收发本地文件。
- 多客户端可以同时互相收发文件。
- 服务端仅转发数据,不存储数据。
- 运行时无其他三方二进制库依赖。
Linux到Linux文件传输保留原权限。- 干净,不会在客户机环境到处遗留临时文件。
- 临时公网传输,无需使用三方需要登陆软件。
- 服务端自我安全防御(若部署到云端防止常规攻击)。
- 支持拒绝同时操作同设备同路径文件,防止文件内容丢失。
二、使用说明
1.程序启动
- 对于服务端程序
tss,绑定默认绑定0.0.0.0的9898端口,如果需要修改端口,使用参数启动,示例:tss 9898。 - 对于客户端程序
tsc,请使用tsc --help查看使用方式。
2.使用
tsc连接到服务端tss后,可以输入h查看所有指令的具体介绍。
3.介绍补充
- 需要传入存储路径的指令,如果未填写,默认
tsc当前工作目录。 任务文件格式统一为UTF-8编码。- 支持相对路径处理。
UpTask和DownTask指令任务文件格式完全一致,均为左文件,右目录,尽管是下载别人文件,目的是为了支持同一个任务文件既可以发也可以收。
具体任务文件内容格式如下(左侧发送端,右侧接受端),内容支持变量:
- ${HOME},用户目录(发送端接收端均支持)。
- ${CURRENT},任务文件所在目录(该变量仅支持发送端,也就是
|左侧,因为接收端没有任务文件所在路径)
${HOME}/截图/Ni.jpg|${HOME}/dira
${CURRENT}/xxx.zip|D:\
三、编译
当前项目支持cmake构建工具。
git clone --recursive https://www.sinxmiao.cn/taynpg/transm
1.常规编译
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。
Description
v1.5.1
Latest
Languages
C++
99.2%
C
0.6%
CMake
0.2%
