Generalmente i server
1) Utilizza un pool di thread con un thread per richiesta di connessione client, potenzialmente con un pool separato di thread / processi separati per gestire il codice "application" (in contrasto con le basi della gestione di un HTTP richiesta. Un thread gestisce ogni richiesta dall'inizio alla fine, spesso il pooling dei thread viene utilizzato per ridurre la quantità di avvio e di rimozione richiesta per ciascuna connessione.
Oppure, 2) useranno un modello basato sugli eventi che consente a un singolo thread / processo di gestire molte connessioni. In questo caso, ciascuno degli "eventi", come una nuova connessione o un nuovo pacchetto ricevuto, entrerà in una sorta di coda per essere elaborata da uno o un piccolo numero di thread. Questo è un modo molto efficiente per ridimensionare se è possibile limitare la quantità di lavoro da svolgere elaborando ogni evento (altrimenti piccole richieste rapide verranno accodate dietro richieste più grandi).
La principale differenza per quanto riguarda i risultati è che entrambi questi modelli evitano o minimizzano i costi generali del tempo di avvio del processo e della comunicazione tra processi e handoff.