transm/README.md

71 lines
2.8 KiB
Markdown
Raw Normal View History

2024-12-11 10:22:14 +08:00
# transm
2025-01-07 10:12:27 +08:00
一个简易的使用服务端(`tss`)作为中转中心,间接在两个客户端(`tsc`)之间传输文件的工具。
2024-12-11 10:22:14 +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端会自动下载列表中的文件(可用作更新远端文件)。 |
2025-01-07 10:12:27 +08:00
- `tss``tsc`均为命令行端程序,无GUI。
2025-01-07 10:12:27 +08:00
- `tsc``tss`下载文件的时候,如果本地有已存在则会被**覆盖**(注意)。
2025-01-07 10:12:27 +08:00
- 介绍所指的客户端`A``B`是泛指,实际服务端程序支持任意个客户端相互之间**同时连接**和**同时传输**文件,吞吐瓶颈在服务端主机网络上。
2024-12-20 13:39:07 +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`
- 对于客户端程序`tsc`,请使用`tsc --help`查看使用方式。
- `Up`指令后面的文件名路径,如果是非全路径(即相对路径),程序会自动拼接到当前`tsc`工作目录(如`Up dira/test.txt`也是可以的)。
2025-01-07 10:12:27 +08:00
## 2.命令使用(截图可能过时,但使用方式大致如此)
![Screenshot](https://www.sinxmiao.cn/taynpg/transm/raw/branch/main/img/base_intro.png)
2025-01-07 10:12:27 +08:00
### Update功能
命令格式为:`Update 客户端标号 列表文件`
`Update`的提交的列表文件格式为`txt`,内容为每一行格式是`A|B`,其中`A`为提交端的文件路径,`B`为要放到下载端的哪个目录 **(下载端必须存在这个目录,否则下载端拒绝自动下载)**。
示例执行:`Update 1 l.txt`,其中`l.txt`内容示例如下。
```c++
D:/文件/abc.zip|/home/zhangsan/downlaod
D:/截图/Ni.jpg|/home/zhangsan/picture
```
2025-01-21 22:31:22 +08:00
**NOTE**: `列表文件`的格式为`UTF-8`编码。
# 注意
2025-01-07 10:12:27 +08:00
- 如果两个`tsc`客户端在同一台机器上同时收发同一个文件将导致文件丢失损坏。
2025-01-08 14:36:03 +08:00
# 编译
当前项目支持`xmake``cmake`构建工具。
## 1.常规编译
xmake:`xmake`
cmake:`cmake -Bbuild -DCMAKE_BUILD_TYPE=Release``cmake --build build --config Release`
## 2.XP系统编译
### 前提
- `cmake`支持windows XP的版本过低,故使用`xmake`
- 支持`XP``msvc`编译器不支持新`C++语法标准`,故使用`mingw32`编译器。
- 支持`xp``mingw32`编译器的`c++17`标准的`filesystem`模块还是实验性质且有编译`BUG`,故使用`boost-filesystem`
### 编译
- 构建选项:`xmake f -p mingw -a i386 --boost=y`
- 环境变量定义:`BOOST_HEADER_DIR``BOOST_LIB_DIR``BOOST_LIBS`