A chat server using socket programming implemented in python.
To run the project, simply run the start.sh program:
- ./start.sh
- Chat server object keeps track of which chatrooms are active and allows clients to connect to the chat server and from there join chatrooms. It allocates a unique thread for each individual client (or each client socket connection) and handles joining and leaving of clients. All client interaction comes through the chat server object.
- Chatroom object keeps track of which clients are in which chatroom
- Locks are used to make sure the data shared by the clients and chat server isnt corrupted, the Lock object from the threading class was used to implement this securely.
- The program obtained full marks when tested against the test server in TCD, passing every test available.