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