Completed as part of the Spring 2024 offering of CS:3640 Introduction to Networks at the University of Iowa.
Description
A Python-based messaging system implementing a chat client and directory server architecture. The chat clients communicate with the directory server using TCP to register and lookup users, while client-to-client messaging is handled through UDP sockets. Messages are encoded in JSON format for standardized communication between components.
Features
- User Registration: Clients register their username and IP:port with the directory server via TCP
- Message Exchange: Direct client-to-client communication using UDP sockets
- Multi-threaded Design: Separate threads for handling incoming messages and user input
- StackPython, socket, threading, JSON
- Source[Link to source code]