Good day From Chicago, I read your entire requirement and understand it. I am an expert C and TCP/UDP socket programmer. (please check my reviews). My question to you to better understand the bigger picture, is whether you could give a real world explanation of the nature of the clients. Are they simple applications or are they web browsers. What is their life cycle.. Are they persistent or short lived.
I have written TCP/UDP client server app where the server can handle up to 500,000 clients and an intermediary reverse proxy server that fans out the connections to many servers, so basically the number of clients is only limited by the number of hardware devices and memory. If your scenario only needs a few hundred connections, then TCP is easily the way to go. If you need thousands of connections, we need to incorporate TCP to "register/login" to the server, then switch to UDP for data/message transfer, as most OS configurations limit the open file/socket limit to physical memory configurations.
So if you could give me a little more info, I can come up with a plan, price and deliverable date.
Mark