Servidor de eco para chat

Tenho um código de um servidor de eco para um chat, ele recebe a mensagem mais não envia a mesagem recebida para os usuários, como faço para corrigir esse problema?

Código do servidor de eco

import java.io.*;
import java.net.*;
public class ServidorDatagrama
{
  public static void main(String[] args)
  {
    DatagramSocket socket=null;
    DatagramPacket recvPacket, sendPacket;
    try
    {
      System.out.println("=== ««« Servidor de eco no ar !!! »»» ===");
      socket=new DatagramSocket(4545);
      while(socket!=null)
      {
        recvPacket=new DatagramPacket(new byte[512], 512);
        socket.receive(recvPacket);
        sendPacket=new DatagramPacket(recvPacket.getData(), recvPacket.getLength(),
                                  recvPacket.getAddress(), recvPacket.getPort());
        socket.send(sendPacket);
        System.out.println("Mensagem recebida do Cliente: "+recvPacket.getAddress()+
                                                        ":"+recvPacket.getPort());
        System.out.print("=> ");
        System.out.write(recvPacket.getData(),0,recvPacket.getLength());
        System.out.print("\r\n");
        System.out.print("\r\n");
      }
    }
    catch(SocketException se)
    {
      System.out.println("Erro no ServidorDatagrama: "+se);
    }
    catch(IOException ioe)
    {
      System.out.println("Erro no ServidorDatagrama: "+ioe);
    }
  }
}

Código do Cliente

import java.io.*;
import java.net.*;
public class ClienteDatagrama
{
  private DatagramSocket socket=null;
  private DatagramPacket recvPacket, sendPacket;
  public static void main(String[] args)
  {
    DatagramSocket socket=null;
    DatagramPacket recvPacket, sendPacket;
    try
    {
      socket=new DatagramSocket();
      InetAddress hostAddress=InetAddress.getByName("127.0.0.1");
      DataInputStream userData=new DataInputStream(System.in);
      while (socket !=null)
      {
        //leitura da mensagem para enviar para o servidor Datagrama
        System.out.print("Mensagem para enviar: ");
        String userString=userData.readLine();
        if ((userString==null)||(userString.equals("")))  
          return;
    
        //converte o String para um Array de bytes
        byte sendbuf[]=new byte[userString.length()];
        userString.getBytes(0,userString.length(),sendbuf,0);
        sendPacket=new DatagramPacket(sendbuf, sendbuf.length, hostAddress, 4545);
    
        //envia o Datagrama para o servidor
        socket.send(sendPacket);
    
        //recebe o Datagrama do servidor
        recvPacket=new DatagramPacket(new byte[512], 512);
        socket.receive(recvPacket);
    
        //exibe na tela do cliente a mensagem de eco do servidor Datagrama
        System.out.print("Mensagem recebida (eco): ");
        System.out.write(recvPacket.getData(),0,recvPacket.getLength());
        System.out.print("\r\n");
        System.out.print("\r\n");
      }
    }
    catch(SocketException se)
    {
      System.out.println("Erro no ClienteDatagrama: "+se);
    }
    catch(IOException ioe)
    {
      System.out.println("Erro no ClienteDatagrama: "+ioe);
    }
  }
} 

Olá! Eu tenho esse mesmo código q peguei na internet, mas eu não sei como eu coloco a mensagem pro servido ver e enviar o eco? Sò faço os codigos com interface grafica, aí quando nao tem eu fico perdida. Voce saberia me dizer onde eu escrevo a mensagem? É no console mesmo, embaixo de onde aparece a mensagem: “== ««« Servidor de eco no ar !!! »»» ===”? Ou tenho que configurar alguma coisa pra escrever e aparecer a mensagem??
Aguardo!