What you should do is a IPC between each client, where the server is used only to point the IP and port of each client. So, when A send a message to B it need to have the IP:port of B, than connects to that port and send the MSG. If A send the same message to B, C and D is the same thing, but for many ports. Is simple to do and uses less bandwidth since you can apply this process over UDB.
Graciliano M. P.
"Creativity is the expression of liberty".