-
Notifications
You must be signed in to change notification settings - Fork 0
⚡️ lightning file transfer over TCP/IP on BSD sockets (POSIX)
License
WANDEX/mqlqd
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
██ ██ █████ ██ █████ █████▄
▓███▄ ▄███▒██▓ ██▓██▓ ▒██▓ ██▒██▓ █▌
▓██▀███▀██░██▒ ██▒██▒ ▒██▒ ██░██▒ █▌
▒██ ▀ ▒██░██ ██▒██░ ░██ ██░██ █▌
▒██▒ ░██░▒███▀█▄░██████░▒███▀█▄░█████▓
░ ░ ░░ ▒░ ░░ ░ ▒ ░░ ▒░ ░ ░ ▒ ▒
░ ░ ░ ░ ░ ░ ░
File transfer over TCP/IP on sockets (POSIX)
=================================================
___ _ ___ _ ___ _ ___ _
[(_)] |=| [(_)] |=| [(_)] |=| [(_)] |=|
'-` |_| '-` |_| '-` |_| '-` |_|
/mmm/ / /mmm/ / /mmm/ / /mmm/ /
|____________|____________|____________|
mqlqd clients |
send files to the server |
\ _______
.-------. \_______| _____ |
| -----.-----. server ||_____||
| -----| -----\ running ||_____||
| -----| ----- | mqlqd ||_____||
| -----| ----- | daemon ||_____||
'------| ----- | ||_____||
'-------' ||_____||
listens for incoming connections ||_____||
receives and saves files in a storage | |
directory unique to the client |=======|
CLIENT USAGE
============
Transfer file(s) over TCP/IP to the server running the mqlqd_daemon.
Usage:
mqlqd_client [OPTIONS] [file paths as trailing arguments ...]
-a, --addr arg Server IP address with the mqlqd_daemon.
(default: 127.0.0.1)
-p, --port arg Port number of the daemon on the server.
(default: 42069)
-c, --cat Print file content (cat like utility mode).
-f, --file arg File path of the file to transmit.
-h, --help Show usage help.
-u, --urge 1-7 Log urgency level. (All messages </> Only critical)
DAEMON USAGE
============
Accept file(s) over TCP/IP from the clients running the mqlqd_client.
Usage:
mqlqd_daemon [OPTION...]
-d, --dir arg Path to the storage dir, else default storage under cwd.
(default: ./mqlqd_storage)
-p, --port arg Use port number as identity of the daemon on the server.
(default: 42069)
-h, --help Show usage help.
-u, --urge 1-7 Log urgency level. (All messages </> Only critical)
BUILD FROM SOURCE
=================
$ git clone --recurse-submodules [email protected]:WANDEX/mqlqd.git && cd mqlqd
$ cmake -E make_directory build
$ cmake -S . -B build
$ cmake --build build
REQUIREMENTS
============
Platform requirement: Linux, BSD or origin from the UNIX family (POSIX compliant os).
* libc To work with the socket API (socket API support is mandatory for the platform)
git submodules:
* wndx::sane (https://github.com/WANDEX/wndx_sane)
3rdparty dependencies (CMake fetch content at configure time):
* fmtlib (https://github.com/fmtlib/fmt)
* cxxopts (https://github.com/jarro2783/cxxopts)
Tests require:
* gtest (https://github.com/google/googletest)
RELATED ARTICLES
================
Linux man-pages are crucial for understanding of the sockets API.
The Linux socket API explained (brilliant simple and concise introduction)
https://www.youtube.com/watch?v=XXfdzwEsxFk
A brief intro to TCP/IP and a basic client-server setup in C++ that uses TCP/IP
https://lenngro.github.io/how-to/2021/01/05/Simple-TCPIP-Server-Cpp/
Berkeley BSD and POSIX sockets API (history)
https://en.wikipedia.org/wiki/Berkeley_sockets
OSI model (Open Systems Interconnection model) (history)
https://en.wikipedia.org/wiki/OSI_model
LICENSE
=======
MIT
About
⚡️ lightning file transfer over TCP/IP on BSD sockets (POSIX)