Original Post
Hello, I am wondering if my server is using the best method or not. It is designed to handle multiple connections (500-2000 connections). The Design I have the server split into a few classes. 1) The GUI. 2) The Protocol 3) The Networking 4) The Database Interface GUI This is a standard windows form, not much interesting there. When the user clicks "Start" a separate thread is generated which contains the Networking class. Protocol This sits above the Networking and Database Interface classes. It *is* the game. Networking The networking class consists of 4 distinct threads. The listen thread is always listening for new connections, the receive thread is constantly reading all sockets to see if there is new data incoming, send thread loops through the send list and transmits data to the appropriate remote connection and the ping thread checks for lost connections then removes them. Database Interface This is a class that utilises ADO.NET to communicate, asynchronously with an MSSQL 2005 database. I believe that if there is a problem with my design it will be the performance of the networking layer. Does what I have explained sound efficient enough to handle 2000 connections or is there a better way?