He creado un servidor Java con sockets, ¿cómo imprimir en TODOS los sockets?

He intentado esto por un tiempo, y quiero que múltiples clientes reciban múltiples entradas simultáneamente.
Hay un problema, quiero que el servidor imprima "Hola" a todos los clientes si un cliente dice "print2all Hi".
Sé cómo procesarlo para imprimirlo, solo imprimirlo a TODOS los clientes es el problema.

Esto es lo que tengo hasta ahora.
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();

Respuestas a la pregunta(2)

Su respuesta a la pregunta