File Transfer Tool is a lightweight, fast, safe, and multifunctional cross-device file transfer tool.
- File transfer
- Can transfer a single file or an entire folder, and supports resumed transfers
- Security guarantee: Generate an exclusive TLS/SSL security certificate for each session to maximize security
- Progress bar display: Real-time display of file transfer progress, current network speed, remaining transfer time and other information
- Specially optimized for transfer of small files (<1MB)
- Provides a simple ssh-like function that can execute commands remotely and return results in real time
- Automatically search for the service host, or manually specify the connection host
- Folder comparison can display information such as similarities and differences between files in two folders.
- Check system status and information of both parties
- Output logs to the console and files in real time, and automatically organize and compress log files
- Test the network bandwidth between both parties
- Information can be transmitted at both ends to implement simple chat functions
- Synchronize the clipboard contents at both ends
- You can set a connection password for the server to enhance security
- Fast startup, operation and response speed
- Adopt the minimum default configuration principle, which can be used out of the box, or you can easily modify the configuration yourself.
- It can be used in any network environment such as local area network or public network, as long as the two hosts can be connected to the network.
- You can specify the number of threads and use multi-thread transmission
- Receive information such as modification time and access time of retained files and folders
- It can be turned on and off immediately, and no process will remain after closing the program.
- Currently adapted to Windows and Linux platforms
- If you want a more powerful file transfer service, please choose an FTP server or client (such as
FileZilla,WinSCP, etc.) - If you want stable file synchronization and sharing, it is recommended to use
Resilio Sync,Syncthing, etc. - If you only transfer files occasionally/don’t like the background storage and resource usage of the above services/don’t need such powerful services/want to customize the functions yourself, please choose
File Transfer Tools
- Click
Releaseon the right - Download the compressed package
- Unzip the folder and double-click
FTT.exeto run it with the default configuration. - Or run the program in the terminal to use program parameters, such as
.\FTT.exe [-h] [-t thread] [-host host] [-d destination] [-p password]
- Clone the source code to your project location
- Use
pip install -r requirements.txtto install all dependencies - Execute the script using your python interpreter
FTT can provide services to two parties at the same time, and both parties can transfer files to each other and execute instructions.
- If no password is set, FTT will automatically search for the host and connect to it by default after opening it. It is recommended to use this method only in a simple LAN environment.
- If you are in a complex network environment or need to connect to the public network, one party needs to set a password, and the other party needs to specify the host name or IP address and password to connect.
usage: FTT.py [-h] [-t thread] [-host host] [-p password] [-d base_dir]
File Transfer Tool, used to transfer files and execute commands.
options:
-h, --help show this help message and exit
-t thread Threads (default: cpu count)
-host host Destination hostname or ip address
-p password, --password password
Set a password for the host or Use a password to connect host.
-d base_dir, --dest base_dir
File save location (default: ~\Desktop)
-t: Specify the number of threads, the default is the number of processors.
-p: Explicitly set the host password or specify the connection password (no password by default). When this option is not used, servers under the same subnet are automatically searched.
-host: Specify the host name of the other party (hostname or ip can be used) and port number (optional), which must be used with -p.
-d: Explicitly specify the file receiving location, the default is desktop on Windows platform.
After the connection is successful, enter the command
- Enter the file (folder) path, and the file (folder) will be sent.
- Enter
sysinfo, the system information of both parties will be displayed. - Enter
speedtest n, and the network speed will be tested, where n is the amount of data for this test, in MB. Note that in Computer Network, 1 GB = 1000 MB = 1000000 KB. - Enter
compare local_dir dest_dirto compare the differences in files in the local folder and the server folder. - Enter
sayto send a message to the other party, which can be used as a simple chat server - Enter
setbaseto change the file receiving location - Enter
get clipboardorsend clipboardto synchronize the clipboard contents of the client and server - When inputting other content, it will be used as a command to be executed by the server, and the results will be returned in real time.
The following are screenshots running on the same host.
Program start
Transfer files
Execute command: sysinfo
Execute command: speedtest
Execute command: compare
Execute command: clip
Execute command: say
Execute command: setbase
Execute command line command
The configuration items are in the configuration file config. When the configuration file does not exist, the program will use the default configuration.
windows_default_path: The default file receiving location under Windows platform
linux_default_path: The default file receiving location under Linux platform
windows_log_dir: The default log file storage location under Windows platform
linux_log_dir: The default log file storage location under the Linux platform
log_file_archive_count: archive when the number of log files exceeds this size
log_file_archive_size: Archive when the total size (bytes) of the log file exceeds this size
server_port: Server TCP listening port
signal_port: UDP listening port








