2025-04-07 23:12:27 +08:00
2025-02-11 12:53:56 +08:00
2025-04-07 23:12:27 +08:00
2025-04-07 23:12:27 +08:00
2025-04-07 17:28:50 +08:00
2025-02-16 13:07:11 +08:00
2025-01-14 13:26:04 +08:00
2025-02-17 18:29:23 +08:00
2025-04-05 23:36:17 +08:00
2025-02-16 14:58:03 +08:00

transm

一个简易的使用服务端(tss)作为中转中心,间接在两个(多)客户端(tsc)之间传输文件的工具。

平台支持:WindowsLinuxMacOSTermuxiPhone iSh及理论上其他任意支持c++17标准编译器的平台。

低版本编译器,可选择boost+c++11标准组合。

:使用安装包的用户,如果想变更安装位置的话,请先卸载旧版本(原位置更新最新版不用卸载)。

一、简要介绍

主要功能序号 简介
1 A端提交文件列表到服务端,B端可以从服务端查阅有哪些客户端提交的哪些任务,自行选择下载。
2 A端可以提交一个下载任务文件给B端,B端会自动下载列表中的文件(可用作更新远端文件)。
3 A端可以直接给B端发送文件(v1.3.1及其以后版本)。
  • tsstsc均为命令行端程序,无GUI。

  • tsctss下载文件的时候,如果本地有已存在则会被覆盖(注意)。

  • 介绍所指的客户端AB是泛指,实际服务端程序支持任意个客户端相互之间同时连接同时传输文件,吞吐瓶颈在服务端主机网络上。

一些特点(基于最新版本)

  • 通配符传输。
  • 终端自动文件补全。
  • 自动更新远程文件。
  • 多客户端可以同时互相收发文件。
  • 自动检测对方掉线。
  • 服务端自我安全防御(若部署到云端防止常规攻击)。
  • 广泛的平台支持。
  • 服务端仅转发数据,不存储数据。
  • 极小的、单个文件。
  • 干净,不会在客户机环境到处遗留临时文件。
  • 运行时无其他三方二进制库依赖。
  • 临时公网传输,无需使用三方需要登陆软件。
  • LinuxLinux文件传输保留原权限。

二、使用说明

1.程序启动

  • 对于服务端程序tss,绑定默认绑定0.0.0.09898端口,如果需要修改端口,使用参数启动,示例:tss 9898
  • 对于客户端程序tsc,请使用tsc --help查看使用方式。
  • Up指令后面的文件名路径,如果是非全路径(即相对路径),程序会自动拼接到当前tsc工作目录(如Up dira/test.txt也是可以的)。

2.命令使用(截图可能过时,但使用方式大致如此)

2.1 客户端 tsc 简介

tsc

2.2 功能一简介

func1

2.3 功能二简介

func2

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客户端在同一台机器上同时收发同一个文件将导致文件丢失损坏(如果收发操作的是同一个文件)。

编译

当前项目支持cmake构建工具。

git clone --recursive https://www.sinxmiao.cn/taynpg/transm

1.常规编译

cmake:cmake -Bbuild -DCMAKE_BUILD_TYPE=Releasecmake --build build --config Release

2.XP系统编译

前提

  • 支持XPmsvc编译器不支持新C++语法标准,故使用mingw32编译器。
  • 支持xpmingw32编译器的c++17标准的filesystem模块还是实验性质且有编译BUG,故使用boost-filesystem
  • 需要一个最低3.16版本的cmake

编译

请参照:xp_build.bat

Description
一个简易的使用服务端(tss)作为中转中心,间接在两个(多)客户端(tsc)之间传输文件的工具。
Readme 6.2 MiB
v1.5.1 Latest
2025-04-09 19:41:40 +08:00
Languages
C++ 99.2%
C 0.6%
CMake 0.2%