Eu criei um servidor Java com soquetes, apenas como imprimir para todos os soquetes?

Eu tenho tentado isso por um tempo, e eu quero que vários clientes recebam várias entradas simultaneamente.
Existe um problema, eu quero que o servidor imprima "Hi" para todos os clientes se um cliente disser 'print2all Hi'.
Eu sei como processá-lo para imprimi-lo, apenas para imprimir para todos os clientes é o problema.

Aqui está o que eu tenho até agora.
Servidor

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();
}

Cliente

            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