Text Conferencing Server
In my Computer Networks course (ECE361) at UofT, my partner and I developed a text conferencing application for the Linux command line. The application consists of two main components: the server and the client.
The server listens for new clients on a specified port. Clients can connect to the server by executing a login command with the server address, port number, and login credentials. The server validates these credentials and ensures that the clients are recognized. Once connected, the server assigns a thread to each client to process their request commands, enabling interaction with sessions and other clients.
The client allows users to enter commands via the command line to send messages to the server, facilitating interaction with other clients such as sending messages and creating/joining sessions. The client is implemented with two threads: one to handle client input and execute commands, and another to listen to the server and process commands provided by the server, such as timeouts.
Below, you can observe the interactions among three clients and the server. It's worth noting that all three clients are on different machines (ug220, ug221, ug222).
Additionally, the server implements timeouts and can handle more clients, although this functionality was not demonstrated in the provided demo.