Chat Server

In the chat server project, I developed a chat client program that enables synchronous, real-time communication with a server, drawing inspiration from classic chat systems such as IRC. 

The goal of this project was to build a network application. Key features of this project  include the development of a communication protocol to facilitate interactions between clients and the server, the ability to handle network communication, particularly through accepting TCP connections from clients, and the incorporation of concurrency and synchronization primitives. These elements are crucial for coordinating access to shared data on a remote server, ensuring efficient and harmonious operation of the system. This project was an excellent opportunity to gain hands-on experience in the fundamental aspects of networking, protocol design, and managing concurrent processes in a networked environment.