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.
in reply to developing a intranet messenger system
Graciliano M. P.
"Creativity is the expression of liberty".