Al momento ho creato un server multithread in c ++ per windows, in cui ogni client connesso ottiene un thread che rimane in esecuzione fino a quando il socket del client non viene chiuso.
Quando un client si connette, può eseguire comandi (recupera motd, ottiene la versione corrente del client) o può accedere per ottenere l'accesso ad altri comandi (recuperare informazioni utente, scaricare file, ecc.).
Finora questo approccio di base ha funzionato bene, ma ho notato che c'è stato un numero crescente di clienti che utilizzano il mio servizio e sto iniziando a preoccuparmi di quanto sia efficiente questo approccio. Ho letto online che un processo in Windows può gestire solo da 1500-2000 thread, e penso che potrei presto raggiungere quella quantità di utenti simultanei, e penso che sia ora che cambi il mio progetto.
Quale sarebbe il modo migliore per gestire questo numero di utenti?