← All projects

Software Engineering

Java Chatroom

Date Jan 2026
Type University Project
Status Completed
Java Socket Programming OOP

Overview

A client-server chat application developed as a first-semester university project. The application implements a multi-user chat system using Java socket programming, focusing on OOP design principles, concurrent communication, and network programming fundamentals.

How It Works

The application follows a classic client-server model. The server starts listening on a port, and each new client that connects gets its own dedicated ClientHandler thread. A ClientManager keeps track of all active connections and is responsible for broadcasting messages: when one client sends a message, the manager forwards it to every other connected client.

The client side runs as a separate application with a UI for sending and receiving messages, and a network package that handles the socket connection to the server.

What I Built

Java Chatroom screenshot

Technical Details

What I Learned

This was my first real experience with network programming and concurrency. The hardest part was thinking about what happens when multiple threads try to access the same list of clients at the same time, and making sure messages don't get lost or sent to the wrong person.