Java client-server communication system featuring a GUI for real-time message exchange. Implements socket programming, multithreading, and message handling for efficient, concurrent data transfer between clients and server.
This project implements a multithreaded client-server chat system in Java, allowing multiple clients to communicate simultaneously through a centralized server. The application features a graphical user interface (GUI) built with Swing for real-time messaging and connection management.
- 💻 Client-Server Architecture: Clients connect to a server using TCP sockets.
- 🔁 Multithreading: Each client runs on a dedicated thread to handle concurrent communication.
- 💬 Real-Time Messaging: Clients can send and receive messages instantly.
- 🪟 Graphical Interface: User-friendly GUI built with Java Swing for chat interaction.
- 🧪 Unit Testing: Includes JUnit tests for key components such as client, server, and message handling.
- Language: Java
- Core Concepts:
- Socket Programming
- Multithreading
- GUI Design (Swing)
- Object-Oriented Programming
- Key Classes:
Server.java– Handles client connections and message broadcastingClient.java– Connects to the server and exchanges messagesClientHandler.java– Manages communication for each connected clientClientGUI.java– Swing interface for message input/outputServerMain.java/ClientMain.java– Entry points to run server and client
- Compile all Java files:
javac *.java