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-16 14:58:03 +08:00
|
|
|
**注**:使用安装包的用户,如果想变更安装位置的话,请先卸载旧版本(原位置更新新版不用)。
|
2025-02-16 13:07:11 +08:00
|
|
|
|
2025-01-07 10:12:27 +08:00
|
|
|
# 一、简要介绍
|
2024-12-11 10:22:14 +08:00
|
|
|
|
2025-01-07 10:12:27 +08:00
|
|
|
| 主要功能序号 | 简介 |
|
|
|
|
| ------------ | ------------------------------------------------------------ |
|
|
|
|
| 1 | A端提交文件列表到服务端,B端可以从服务端查阅有哪些客户端提交的哪些任务,自行选择下载。 |
|
|
|
|
| 2 | A端可以提交一个下载任务文件给B端,B端会自动下载列表中的文件(可用作更新远端文件)。 |
|
2024-12-19 10:14:18 +08:00
|
|
|
|
2025-01-07 10:12:27 +08:00
|
|
|
- `tss`和`tsc`均为命令行端程序,无GUI。
|
2024-12-19 10:14:18 +08:00
|
|
|
|
2025-01-07 10:12:27 +08:00
|
|
|
- `tsc`从`tss`下载文件的时候,如果本地有已存在则会被**覆盖**(注意)。
|
2024-12-13 12:35:08 +08:00
|
|
|
|
2025-01-07 10:12:27 +08:00
|
|
|
- 介绍所指的客户端`A`、`B`是泛指,实际服务端程序支持任意个客户端相互之间**同时连接**和**同时传输**文件,吞吐瓶颈在服务端主机网络上。
|
2024-12-20 13:39:07 +08:00
|
|
|
|
2025-02-13 19:41:48 +08:00
|
|
|
## 一些特点(基于最新版本)
|
|
|
|
|
|
|
|
- 通配符传输。
|
|
|
|
- 终端自动文件补全。
|
|
|
|
- 自动更新远程文件。
|
|
|
|
- 多客户端可以同时互相收发文件。
|
|
|
|
- 自动检测对方掉线。
|
|
|
|
- 服务端自我安全防御(若部署到云端防止常规攻击)。
|
|
|
|
- 广泛的平台支持。
|
|
|
|
- 服务端仅转发数据,不存储数据。
|
|
|
|
- 极小的、单个文件。
|
|
|
|
- 干净,不会在客户机环境到处遗留临时文件。
|
|
|
|
- 运行时无其他三方二进制库依赖。
|
|
|
|
- 临时公网传输,无需使用三方需要登陆软件。
|
|
|
|
- `Linux`到`Linux`文件传输保留原权限。
|
|
|
|
|
2025-01-07 10:12:27 +08:00
|
|
|
# 二、使用说明
|
2024-12-19 10:14:18 +08:00
|
|
|
|
2025-01-07 10:12:27 +08:00
|
|
|
## 1.程序启动
|
2024-12-19 10:14:18 +08:00
|
|
|
|
2025-01-07 10:12:27 +08:00
|
|
|
- 对于服务端程序`tss`,绑定默认绑定`0.0.0.0`的`9898`端口,如果需要修改端口,使用参数启动,示例:`tss 9898`。
|
|
|
|
- 对于客户端程序`tsc`,请使用`tsc --help`查看使用方式。
|
|
|
|
- `Up`指令后面的文件名路径,如果是非全路径(即相对路径),程序会自动拼接到当前`tsc`工作目录(如`Up dira/test.txt`也是可以的)。
|
2024-12-19 10:14:18 +08:00
|
|
|
|
2025-01-07 10:12:27 +08:00
|
|
|
## 2.命令使用(截图可能过时,但使用方式大致如此)
|
2024-12-19 10:14:18 +08:00
|
|
|
|
2025-02-11 12:53:56 +08:00
|
|
|
### 2.1 客户端 tsc 简介
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
### 2.2 功能一简介
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
### 2.3 功能二简介
|
|
|
|
|
|
|
|

|
2024-12-19 10:14:18 +08:00
|
|
|
|
2025-02-13 18:39:13 +08:00
|
|
|
### 3.1 Get功能
|
|
|
|
|
|
|
|
`v1.2.3`版本起(含),当某个客户端的列表文件数量过多时,只展示部分(会显示总数量)。
|
|
|
|
|
|
|
|
### 3.2 Up功能
|
|
|
|
|
|
|
|
`v1.2.3`版本起(含),`up`后路径支持`?`和`*`通配符:
|
|
|
|
|
|
|
|
```shell
|
|
|
|
up /home/zhang/png/cloud*.png|/home/zhang/download/202?-*.exe
|
|
|
|
```
|
|
|
|
|
|
|
|
### 3.3 Down功能
|
|
|
|
|
|
|
|
`v1.2.3`版本起(含),支持传入下载位置(默认命令所在目录):
|
|
|
|
|
|
|
|
```shell
|
|
|
|
down 1 dira/dirb
|
|
|
|
down 1 ../download
|
|
|
|
down 2 /home/zhang/document
|
|
|
|
```
|
|
|
|
|
|
|
|
### 3.4 Update功能
|
2025-01-07 10:12:27 +08:00
|
|
|
|
|
|
|
命令格式为:`Update 客户端标号 列表文件`
|
|
|
|
|
|
|
|
`Update`的提交的列表文件格式为`txt`,内容为每一行格式是`A|B`,其中`A`为提交端的文件路径,`B`为要放到下载端的哪个目录 **(下载端必须存在这个目录,否则下载端拒绝自动下载)**。
|
|
|
|
|
2025-02-07 12:57:12 +08:00
|
|
|
示例执行:`Update 1 task.txt`,其中`task.txt`内容示例如下:
|
2025-01-07 10:12:27 +08:00
|
|
|
|
2025-02-07 12:57:12 +08:00
|
|
|
```txt
|
2025-01-07 10:12:27 +08:00
|
|
|
D:/文件/abc.zip|/home/zhangsan/downlaod
|
|
|
|
D:/截图/Ni.jpg|/home/zhangsan/picture
|
|
|
|
```
|
|
|
|
|
2025-02-07 12:57:12 +08:00
|
|
|
#### update新增(一)
|
|
|
|
|
|
|
|
`v1.2.1`版本起(含),`task.txt`支持以下变量:
|
|
|
|
|
|
|
|
- ${HOME},用户目录(发送端接收端均支持)。
|
|
|
|
- ${CURRENT},任务文件所在目录(即`task.txt`所在目录,该变量仅支持发送端,也就是`|`左侧,因为接收端没有任务文件所在路径)
|
|
|
|
|
|
|
|
```txt
|
|
|
|
${HOME}/截图/Ni.jpg|${HOME}/dira
|
|
|
|
${CURRENT}/xxx.zip|D:\
|
|
|
|
```
|
|
|
|
|
2025-01-21 22:31:22 +08:00
|
|
|
**NOTE**: `列表文件`的格式为`UTF-8`编码。
|
|
|
|
|
2024-12-17 08:09:58 +08:00
|
|
|
# 注意
|
|
|
|
|
2025-02-13 19:41:48 +08:00
|
|
|
- 如果两个`tsc`客户端在同一台机器上同时收发同一个文件将导致文件丢失损坏(如果收发操作的是同一个文件)。
|
2025-01-08 14:36:03 +08:00
|
|
|
|
|
|
|
# 编译
|
|
|
|
|
|
|
|
当前项目支持`xmake`和`cmake`构建工具。
|
|
|
|
|
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.常规编译
|
|
|
|
|
|
|
|
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`。
|
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`。
|
|
|
|
|
|
|
|
|
2025-02-16 14:58:03 +08:00
|
|
|
# XP用户阅
|
2025-02-16 13:07:11 +08:00
|
|
|
|
2025-02-16 14:58:03 +08:00
|
|
|
- `xp`系统下,安装后(或者添加环境变量后),如果时第一次使用请先执行`ansicon -i`以支持彩色显示,后续则不用再次执行(如果没有卸载过或变更安装位置)。
|
|
|
|
- 使用安装包的用户,如果想变更安装位置的话,请先卸载旧版本(原位置更新新版不用)。
|
|
|
|
- 如果安装位置有变动或者单纯卸载`transm`,请先执行`ansicon -u`再卸载。
|