Post

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!

GitHub

This post is licensed under CC BY 4.0 by the author.