From d965c694faeb7080e1f1acb2e0c6fe90c33117cd Mon Sep 17 00:00:00 2001 From: ShayanEdalatjoo Date: Fri, 17 Jul 2026 18:15:00 +0330 Subject: [PATCH] implementing ChatServer.java --- .../university/chat/Server/ChatServer.java | 29 ++++++++++++++----- 1 file changed, 21 insertions(+), 8 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..0dce357 100644 --- a/src/main/java/com/university/chat/Server/ChatServer.java +++ b/src/main/java/com/university/chat/Server/ChatServer.java @@ -1,15 +1,28 @@ 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. + public static final UserManager userManager = new UserManager(); + public 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(600); + } catch (IOException e){ + throw new RuntimeException(e); + } + while(true){ + try { + Socket socket = serverSocket.accept(); + System.out.println("New user connected."); + ClientSession session = new ClientSession(socket, userManager); + new Thread(session).start(); + } catch(IOException e){ + System.err.println("Cannot connect: " + e.getMessage()); + } + } } }