UDP JAVA - Cliente & Servidor

Olá pessoal, estou com um problema a resolver com sockets em JAVA, O meu Cliente manda a mensagem, o servidor recebe, até aí, tudo bem!!! Mas eu também preciso fazer com que o servidor mande uma mensagem automaticamente de retorno para o cliente.

_PS: Todas as minhas tentativas fizeram o servidor entrar em um loop infinito apenas recebendo a(s) mensagem(s)

package AtividadeUDP;

import java.io.;
import java.net.
;

class UDPServidor {
public static void main(String args[]) throws Exception
{
try
{
DatagramSocket servidorSocket = new DatagramSocket(9880); //instancia do datagramSocket, servidor indicando a porta que ira atender

  byte[] dadoRecebido = new byte[1024]; 	//tamanho das mensagens
  byte[] dadoEnviado  = new byte[1024]; 
  System.out.println ("-------------------Servidor-------------------");
  while(true) 
    { 
	/*--------------- Construindo recepção da mensagem --------------*/
      dadoRecebido = new byte[1024]; //buffer de memória onde a mensagem será transferida

      DatagramPacket recebimentoPacote = new DatagramPacket(dadoRecebido, dadoRecebido.length); //objeto DatagramPacket // comprimento do buffer

      System.out.println ("--> Esperando por uma mensagem..."); //servidor aguardando por mensagem
	/*-----------------------------------------------------------*/
	
  /* ------------ Recebendo a mensagem ------------ */ 

      servidorSocket.receive(recebimentoPacote); //servidor recebendo mensagem

      String msgRecebida = new String(recebimentoPacote.getData()); //pegando dado recebido e atribuindo para string msgRecebida

      InetAddress IPAddress = recebimentoPacote.getAddress(); //pegando endereço IP de quem enviou mensagem

      int porta = recebimentoPacote.getPort();  //pegando porta de quem enviou a mensagem

  /* -------------------------------------------*/ 

      System.out.println ("Mensagem recebida do cliente cujo endereço é: " + IPAddress + " através da porta: " + porta);
      System.out.println ("Mensagem: " + msgRecebida);
      
      //Tentativa Falha de envio de resposta
      //byte[] envioDado = new byte[1024];
      //DatagramPacket envioPacote = new DatagramPacket(envioDado, envioDado.length, IPAddress,9880);
      //servidorSocket.send(envioPacote);
     }
 }
  catch (SocketException ex) {
    System.out.println("UDP porta 9880 está ocupado.");
    System.exit(1);
  }
} 

}


package AtividadeUDP;

import java.io.;
import java.net.
;

class UDPCliente {
public static void main(String args[]) throws Exception
{
System.out.println ("-------------------Cliente-------------------");
try {
String servidorHostName = new String (“127.0.0.1”); //especificando ip do servidor através de uma string
if (args.length > 0)
servidorHostName = args[0];

	/* ---------------- Construindo mensagem  ----------------------------*/
	DatagramSocket clienteSocket = new DatagramSocket(); //Instancia de ClienteSocket
	BufferedReader user_buff = new BufferedReader(new InputStreamReader(System.in)); //buffer que contém mensagem
	InetAddress IPAddress = InetAddress.getByName(servidorHostName);  //endereço ip do servidor destino

	System.out.println ("Preparando para comunicação com Servidor de IP " + IPAddress + ") via porta UDP 9880");
	  
	byte[] envioDado = new byte[1024]; //comprimento da mensagem
	byte[] recebimentoDado = new byte[1024]; //comprimento da mensagem
	  
	System.out.print("Escreva uma mensagem: ");  //cliente escreve mensagem que deseja enviar para o servidor
	String msg = user_buff.readLine(); //mensagem é lida e atribuida para - msg - 
	envioDado = msg.getBytes();    
	/* ------------------------------------------- */ 

	/* ----- Envio de Mensagem -------------------- */      
     System.out.println ("Enviando mensagem de " + envioDado.length + " bytes para o servidor");
	 DatagramPacket envioPacote = new DatagramPacket(envioDado, envioDado.length, IPAddress, 9880); //envio de mensagem para o servidor
	 clienteSocket.send(envioPacote); 
    /* ------------------------------------------- */ 		  
	 clienteSocket.close(); 
 	    }
    catch (UnknownHostException ex) { 
	  System.err.println(ex);
    }
    catch (IOException ex) {
			 System.err.println(ex);
	    }

}
}