Send voice in real time using udp
I can point out to you a bit that you probably want to use Real Time Transport Protocol (RTP) , which is more or less a standard for sending audio or video in real time over a network. However, the implementation is not straight forward and you must use a helper library like jlibrtp to implement. There is also an RTP packager in the Java Media Framework (JMF), but you don't want to go there ....
a source to share
UDP has no quality of service guarantee, so when sending your data packets, you need to add some order number to your data to determine how to shift the data together. For example, you can send 3 datagram packets from the server, but the client can receive them in a different order (2,1,3). Or he may not get any of them at all, in which case you either want him to resent (dubious), or just ignore him and move into some timeout.
a source to share
Take a look at using the RFC3550 real-time protocol ( http://en.wikipedia.org/wiki/Real-time_Transport_Protocol ) as a UDP transport. RTCP as control over TCP.
a source to share