They Chat
Client-server chat application that facilitates secure communication and file transferring.
They Chat
They Chat
TheyChat is a client-server chat application developed solely by me. The application allows multiple clients to connect to a server,exchange messages and files. The project is built using CMake and is designed to run on POSIX systems, utilizing pthreads for multithreading and ncurses for a simple client UI. Communication between the client and server is encrypted using OpenSSL.
Features
- Multithreaded Server: Handles multiple clients concurrently using pthreads.
- Client UI: Simple text-based interface built with ncurses.
- Encrypted Communication: Ensures secure message transfer using SSL.
- File transferring: Clients can upload and download files.
- Commands: Clients can send messages and execute commands.
- Cross-platform: Designed to run on POSIX-compliant systems.
- CMake Build System: Easy to build and manage the project.
- MIT Licensed: Open-source and freely available for modification and distribution.
What I Learned
- Functional programming and its benefits in certain scenarios
- Low-level programming and the importance of memory management
- Building multithreaded applications using the thread pool pattern
- Understanding and implementing client-server architecture
- Low-level network programming, including handling custom message types
- Implementing remote procedure calls (RPC)
- Designing and managing asynchronous tasks
- Securing communication with TLS encryption
- Rendering polished UI in the console using the ncurses library
- Implementing custom file transfer protocols
- Understanding the importance of robust error handling
Source code
Source code is available on GitHub!
This post is licensed under CC BY 4.0 by the author.