package com.university.chat.Server; import java.io.IOException; import java.net.ServerSocket; 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. static final UserManager userManager = new UserManager(); public static void main(String[] args) { // TODO: Create a ServerSocket try (ServerSocket serverSocket = new ServerSocket(5000);) { // TODO: In an infinite loop: // accept an incoming client connection // make a new thread running ClientSession for each user. while (true) { ClientSession clientSession = new ClientSession(serverSocket.accept(), userManager); Thread thread = new Thread(clientSession); thread.start(); } } catch (IOException e) { throw new RuntimeException(e); } } }