I am looking for some suggestions on how to design my server and clients. The server in this case will deliver price data on stocks. There are basically two types of data requested for each stock the user is watching
1) Historical data:an initial stream of data, roughly 50-100kb in size giving past price history on that stock
2) live data updated every second or so.
What would be the most efficient way to deliver this data to the clients? What are some ways the .NET helps me to deal with having multiple clients connected to the server at a time?
I'm assuming this type of bidirectional communication is best done over TCP sockets? How are sockets generally assigned in this case, when the number of clients is unknown at any given time?
When say 100+ clients are connected to the server, and a particular price is updated say every half second, is say a simple for loop sufficient to distribute the data over the various outgoing sockets; or is there some advanced technique that might be utilized to speed this up? (multi-threading ?)
Any thoughts and sharing of your network expertise would be most appreciated.