Skip to content
This repository has been archived by the owner on Sep 22, 2024. It is now read-only.

Latest commit

 

History

History
40 lines (34 loc) · 1.66 KB

README.md

File metadata and controls

40 lines (34 loc) · 1.66 KB

Concurrential Programming Project

Introduction

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.

Features

  • 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

User Commands

  • 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

Admin Commands

  • 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

Database Management

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.