Final Project of AUT Computer Network Course - Dr. Sabaei
A Python-based chat application implementing both TCP and UDP protocols for network communication. The application features a graphical user interface built with tkinter and supports multiple concurrent users.
- Real-time chat functionality using TCP for reliable message delivery
- UDP broadcast for server discovery
- Graphical user interface using tkinter
- Multi-threaded server supporting multiple concurrent connections
- Automatic port assignment for clients
- Broadcast messaging system
- Python 3.x
- tkinter (usually comes with Python installation)
final_server.py- Server implementation with UDP broadcasting and TCP connection handlingfinal_client.py- Client implementation with GUI and network communication logic
-
Start the server:
python final_server.py
-
Start one or more clients:
python final_client.py
The client will automatically discover the server through UDP broadcast and establish a TCP connection.
- The server uses UDP broadcasting to advertise its presence
- Clients automatically find a free TCP port for communication
- Multi-threaded design allows handling multiple client connections simultaneously
- Reliable message delivery is ensured through TCP protocol
- GUI provides an intuitive interface for sending and receiving messages
See the LICENSE file for details.