← Projects

File Parser

QtC++SSL SocketGitHub ↗

Architecture

                          ┌───────────────────┐
                          │    LaunchWindow    │
                          │  (choose a role)   │
                          └─────────┬─────────┘
                  Server role       │       Client role
              ┌─────────────────────┴─────────────────────┐
              ▼                                            ▼
   ┌──────────────────────┐                    ┌──────────────────────┐
   │     ServerWindow      │                    │     ClientWindow      │
   │  status + activity    │                    │  remote file browser  │
   │        log            │                    │  + transfer dock      │
   └──────────┬───────────┘                    └──────────┬───────────┘
              ▼                                            ▼
   ┌──────────────────────┐                    ┌──────────────────────┐
   │   Server (QSslServer) │                    │  Client (state machine)│
   │  accepts TLS conns    │                    │  upload/download queues│
   └──────────┬───────────┘                    └──────────┬───────────┘
              │                                            │
              │   creates one Session per client           │
              ▼                                            │
   ┌──────────────────────┐                                │
   │       Session         │                                │
   │  owns both sockets,   │                                │
   │  parses commands,     │                                │
   │  drives FileTransfer  │                                │
   └──────────┬───────────┘                                │
              │                                            │
              │            TLS  (OpenSSL-backed)            │
              │   ┌─────────────────────────────────────┐  │
              ├──▶│  Control channel  (commands/replies) │◀─┤
              │   │  list dir · request · status · error │  │
              │   └─────────────────────────────────────┘  │
              │   ┌─────────────────────────────────────┐  │
              └──▶│  Data channel  (raw file byte stream)│◀─┘
                  │  chunked + SHA-256 verified          │
                  └─────────────────────────────────────┘

Tech Stack

LayerTechnology
LanguageC++17
GUI / App frameworkQt 6 (6.10.3) — modules: Widgets, Network, Concurrent, CorePrivate
Networking & securityQt Network (QSslServer / QSslSocket) over TLS, OpenSSL (libssl / libcrypto) backend
IntegritySHA-256 via QCryptographicHash
Build systemCMake 3.10+ (Qt AUTOMOC / AUTOUIC / AUTORCC)
Compiler / toolchainMinGW (x86_64)
PackagingInno Setup (installer.iss) for Windows distribution