ABSTRACT
This project focuses on the design and implementation of a
simplified, multi-client, realtime chat application developed using
Java Socket Programming. The system operates on a centralized
server model ([Link]) to manage multiple concurrent client
connections and facilitate message broadcasting to all active users.
The client application ([Link]) features a basic Swing GUI for
user interaction and employs a separate background thread to
continuously handle incoming network data asynchronously. This
design ensures the graphical interface remains responsive and avoids
UI freezes. Furthermore, all UI updates are executed safely on the
Event Dispatch Thread (EDT) using [Link](). The
application uses a simple, text-based protocol where the client
initiates the connection by sending a /hello command with its
nickname. The server manages synchronization (synchronized
(clients)) for the global client list and handles graceful disconnections
signaled by a /quit command. This system serves as an excellent
prototype demonstrating fundamental concepts of network
communication, concurrent programming, and safe UI threading .