I believe that there is no good reason for using UDP. If you try to use UDP for this, you will only complicate things for yourself. If you use UDP, you will have to implement connection control & data delivery checking yourself. TCP is the way to go. I spent some time trying to figure out how to transfer data over TCP using synapse.... It is not that hard, but lack of detailed documentation complicates things, I had lots of WTFs before I got it working in my application