C++ application using a custom TCP protocol for file transfer and compression. It features SQLite-based authentication and supports various file and directory operations, all of which have custom implementations.
- Custom protocol over TCP sockets
- SQLite for user login
- File transfer: upload, download, copy, move, delete
- Directory management: create, list
- Compression: multiple formats and levels
- Admin commands for server status and settings
- cwd: Get current working directory
- download : Download file from server
- rm : Remove file/directory
- mkdir : Create new directory
- compress : Compress files (options:
--level
,--format
) - cd : Change directory
- mv : Move/rename file or directory
- cp : Copy file or directory
- getid: Get session identifier
- logout: Logout from session
- login : Login to server
- upload : Upload files
- ls: List files in current directory
- ping: Check server connectivity
- help: Display help message
- status: Get server status
- get_settings: Retrieve current settings
- set : Update settings
- connections: Display active/pending connections
- clean: Clean server by removing all files and directories
The utils
folder contains scripts for creating and interacting with the SQLite database. These scripts are essential for initializing and maintaining the database structure used for user authentication.