Stworzyłem serwer Java z gniazdami, jak drukować na WSZYSTKICH gniazdach?

Próbuję tego od dłuższego czasu i chcę, aby wielu klientów jednocześnie otrzymywało wiele wejść.
Jest jeden problem, chcę, aby serwer drukował „Hi” wszystkim klientom, jeśli jeden klient mówi „print2all Hi”.
Wiem, jak go przetworzyć, aby go wydrukować, tylko drukowanie na WSZYSTKICH klientach to problem.

Oto, co mam do tej pory.
serwer

try{
    try{
        server = new ServerSocket(25565);
    } catch (Exception e){
        e.printStackTrace();
    }
    while (isListening){
        new SocketThread(server.accept()).start();
    }
    server.close();
} catch (Exception e){
    e.printStackTrace();
}

SocketThread

try {
    PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
    BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

    String inputLine, outputLine;
    Processor kkp = new Processor();
    out.println("Hi!");

    while ((inputLine = in.readLine()) != null) {
        outputLine = kkp.Proccess(inputLine,this.socket);
        out.println(outputLine);
    }
    out.close();
    in.close();
    socket.close();

} catch (IOException e) {
    e.printStackTrace();
}

Klient

            Processor p = new Processor();
            socket = new Socket("localhost",25565);
            out = new PrintWriter(socket.getOutputStream(), true);
            in = new BufferedReader(new InputStreamReader(socket.getInputStream()));                
            BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
            String fromServer;
            String fromUser;
            out.println("print2all Hi")            
            socket.close();

questionAnswers(2)

yourAnswerToTheQuestion