transm/README.md

128 lines
4.7 KiB
Markdown
Raw Normal View History

2024-12-11 10:22:14 +08:00
# transm
2025-02-13 19:46:19 +08:00
一个简易的使用服务端(`tss`)作为中转中心,间接在两个(多)客户端(`tsc`)之间传输文件的工具。
2024-12-11 10:22:14 +08:00
2025-02-13 19:41:48 +08:00
平台支持:`Windows``Linux``MacOS``Termux``iPhone iSh`及理论上其他任意支持`c++17`标准编译器的平台。
低版本编译器,可选择`boost`+`c++11`标准组合。
2025-02-17 10:54:45 +08:00
**注**:使用安装包的用户,如果想变更安装位置的话,请先卸载旧版本(原位置更新最新版不用卸载)。
2025-02-16 13:07:11 +08:00
2025-04-08 12:01:35 +08:00
# 一、说明
2024-12-11 10:22:14 +08:00
2025-04-08 12:01:35 +08:00
**注意:** 当前说明文档仅针对`v1.4.1`及其以后的版本,此前的版本需要检出对应`tag``README.md`或者下载对应发布版本的源码,然后解压其中的`README.md`
2025-04-08 12:01:35 +08:00
服务端程序支持任意个客户端相互之间**同时连接**和**同时传输**文件,吞吐瓶颈在服务端主机网络上。
2025-04-08 12:01:35 +08:00
- `tss``tsc`均为命令行端程序,无GUI。
2024-12-20 13:39:07 +08:00
2025-02-13 19:41:48 +08:00
## 一些特点(基于最新版本)
2025-04-09 12:00:43 +08:00
- 易编译。
2025-02-13 19:41:48 +08:00
- 通配符传输。
2025-04-09 12:00:43 +08:00
- 公网传输支持加密。
2025-04-08 12:01:35 +08:00
- 广泛的平台支持。
2025-02-13 19:41:48 +08:00
- 终端自动文件补全。
- 自动检测对方掉线。
- 极小的、单个文件。
2025-04-08 12:01:35 +08:00
- 支持相对路径处理。
- 单端可以操作下载发送。
- 支持单客户端操作收发本地文件。
- 多客户端可以同时互相收发文件。
- 服务端仅转发数据,不存储数据。
2025-02-13 19:41:48 +08:00
- 运行时无其他三方二进制库依赖。
- `Linux``Linux`文件传输保留原权限。
2025-04-08 12:01:35 +08:00
- 干净,不会在客户机环境到处遗留临时文件。
- 临时公网传输,无需使用三方需要登陆软件。
- 服务端自我安全防御(若部署到云端防止常规攻击)。
- 支持拒绝同时操作同设备同路径文件,防止文件内容丢失。
2025-02-13 19:41:48 +08:00
2025-01-07 10:12:27 +08:00
# 二、使用说明
2025-01-07 10:12:27 +08:00
## 1.程序启动
2025-01-07 10:12:27 +08:00
- 对于服务端程序`tss`,绑定默认绑定`0.0.0.0``9898`端口,如果需要修改端口,使用参数启动,示例:`tss 9898`
2025-04-09 16:20:34 +08:00
- 对于客户端程序`tsc`,请使用`tsc --help`查看如何启动。
2025-04-08 12:01:35 +08:00
## 2.使用
2025-04-08 12:01:35 +08:00
`tsc`连接到服务端`tss`后,可以输入`h`查看所有指令的具体介绍。
2025-02-11 12:53:56 +08:00
![tsc](https://www.sinxmiao.cn/taynpg/transm/raw/branch/main/img/tsc_use.png)
2025-04-08 12:01:35 +08:00
## 3.介绍补充
2025-04-08 12:01:35 +08:00
- 需要传入存储路径的指令,如果未填写,默认`tsc`当前工作目录。
- `任务文件`格式统一为`UTF-8`编码。
- 支持相对路径处理。
2025-04-08 12:36:16 +08:00
- `UpTask``DownTask`指令`任务文件`格式完全一致,均为左文件,右目录,尽管是下载别人文件,目的是为了支持同一个任务文件既可以发也可以收。
2025-04-08 12:01:35 +08:00
具体`任务文件`内容格式如下(左侧发送端,右侧接受端),内容支持变量:
2025-02-07 12:57:12 +08:00
- ${HOME},用户目录(发送端接收端均支持)。
2025-04-08 12:01:35 +08:00
- ${CURRENT},任务文件所在目录(该变量仅支持发送端,也就是`|`左侧,因为接收端没有任务文件所在路径)
2025-02-07 12:57:12 +08:00
```txt
${HOME}/截图/Ni.jpg|${HOME}/dira
${CURRENT}/xxx.zip|D:\
```
2025-04-09 10:25:45 +08:00
### 3.1 版本内容补充
2025-04-09 10:27:29 +08:00
- `v1.5.0`及其以后版本:支持数据加密传输功能(会影响速度,默认开启,可关闭)。
2025-04-09 10:25:45 +08:00
```c++
/*
测试环境 ==>
Microsoft Windows 10 Professional (x64) Build 19045.5608 (22H2)
13th Gen Intel(R) Core(TM) i5-13500H 3200.0 MHz
Debug模式 tinyaes 加密解密测试速度:
=========================================
File size: 630239232 bytes (601.043 MB)
Effective block size: 102384 bytes
Total encryption time: 41887336 μs (14.349 MB/s)
Total decryption time: 41822620 μs (14.3712 MB/s)
Data verification: PASSED
=========================================
Release模式 tinyaes 加密解密测试速度:
=========================================
File size: 630239232 bytes (601.043 MB)
Effective block size: 102384 bytes
Total encryption time: 8367460 μs (71.831 MB/s)
Total decryption time: 8150036 μs (73.7473 MB/s)
Data verification: PASSED
=========================================
*/
```
- `v1.5.2`及其以后的代码版本:新增了`tss-http`服务端,简单用于某些时候,客户机上没有`tsc``tss`程序时,通过`http`协议传输文件。
> 关于`tss-http`编译:不支持`mingw`编译,因此`win8`及以下没有此程序支持。
> 示例启动:`tss-http 8080 D:/files`(参数为端口、根目录)。
2025-04-08 12:01:35 +08:00
# 三、编译
2025-01-08 14:36:03 +08:00
2025-02-17 10:51:32 +08:00
当前项目支持`cmake`构建工具。
2025-01-08 14:36:03 +08:00
2025-02-11 14:24:26 +08:00
```shell
git clone --recursive https://www.sinxmiao.cn/taynpg/transm
```
2025-01-08 14:36:03 +08:00
## 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`
2025-02-16 13:07:11 +08:00
- 需要一个最低`3.16`版本的`cmake`
2025-01-08 14:36:03 +08:00
### 编译
2025-02-16 13:07:11 +08:00
请参照:`xp_build.bat`