I have a Client Server application written in C#
The server listens on a specified port. A client pushes data to this server and the remaining clients pull this data. Likewise all the clients use this server.
I wanted to know, is there any cap on the number of connections that a socket can allow with reliable communication of data, as-in without data loss? Typical size of the data that is communicated to the server and then relayed to the clients is around 40 kbps.
Can you please help me understand what all parameters should be considered for designing such a solution?
Upstream bandwidth will be your biggest bottleneck.
If by “40 kbps” you mean kilo-BITS per second instead of kilo-BYTES per second then that gives you 5 KB/s. If your upstream bandwidth is 1 mega-BIT per second (128 kilo-BYTES per second) then you can only have around (128/5) 25 clients.
For the allowing many connections on one port issue, HTTP servers do this without a problem.