Here is what I am thinking -- I did not run your code and verify.
From your code, it looks like the client socket is NOT bound to any port -- I am assuming that your code is used for the other client as well. Basically, if a UDP server (receiver) needs to receive a packet (datagram), then it must be bound to a port and the UDP client (sender) must send the packet on this port. For the send side of the client you do this correctly when you build a packet as "DatagramPacket(buf, buf.length, address, 8000);".
When the server receives this packet, it sends the packet to the localhost ("127.0.0.1") but you dont seem to be specifying what is the port number for this outgoing packet. So, you would need to do two things. First, bind the client to another port (let us say 9000) and then make the destination port of the packet 9000 and send it.
Btw, if you have only one sender and reciever, then you can use the the port number from the received packet "receivePacket.getPort()" to reflect the response back to the sender. But, since you have two clients, you cannot use this method. So, you are left with the case of making sure that the second client also binds to the port.