Custom multi-threaded client-server voting system in Java supporting TCP communication,
vote management, and request logging.
This project implements a simple voting system as part of a Networks coursework project.
The server maintains voting options and handles multiple client connections concurrently
using a fixed thread pool. Clients can view the current vote counts or cast votes, and all
requests are logged in log.txt. Thread-safe synchronization ensures accurate vote counting
under concurrent access.
- Multi-threaded server with fixed thread pool
- TCP socket-based client-server communication
- Thread-safe vote updates using synchronization
- Logging of all valid client requests (
log.txt) - Client commands:
listto view votes,vote <option>to cast a vote
- Java
- TCP Sockets
- Multi-threading & Executors
This project demonstrates practical understanding of:
- Networked client-server architecture
- Multi-threaded programming and thread safety
- TCP socket communication
- Logging and request handling in server applications