From 47b2c3f85ff389e2f1282e2b03cc4addffce269e Mon Sep 17 00:00:00 2001 From: mohammadreza Date: Wed, 24 Jun 2026 13:07:14 +0330 Subject: [PATCH] feat: complete TODO tasks in ChatServer.java --- .../university/chat/Server/ChatServer.java | 36 +++++++++++++++---- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/university/chat/Server/ChatServer.java b/src/main/java/com/university/chat/Server/ChatServer.java index b2a35ae..b49361d 100644 --- a/src/main/java/com/university/chat/Server/ChatServer.java +++ b/src/main/java/com/university/chat/Server/ChatServer.java @@ -1,15 +1,37 @@ package com.university.chat.Server; +import java.io.IOException; +import java.net.ServerSocket; +import java.net.Socket; + public class ChatServer { - // TODO: declare a single shared UserManager instance (static final) - // This MUST be shared by all ClientSession threads so that - // broadcasting and private messaging work correctly. + + private static final UserManager userManager = new UserManager(); + private static ServerSocket serverSocket; public static void main(String[] args) { - // TODO: Create a ServerSocket - // TODO: In an infinite loop: - // accept an incoming client connection - // make a new thread running ClientSession for each user. + try { + serverSocket = new ServerSocket(9000); + System.out.printf("server started. port: %s\n" ,9000); + } catch (IOException e) { + throw new RuntimeException(e); + } + + try { + while (true) { + + Socket s = serverSocket.accept(); + System.out.println("new client accepted."); + ClientSession clientSession = new ClientSession(s, userManager); + Thread thread = new Thread(clientSession); + thread.start(); + + } + } + catch (IOException e) { + + System.err.println("Error running thread."); + } } }