Twisted è un framework di rete basato su eventi scritto in Python. Sviluppa pesantemente su funzionalità asincrone e non bloccanti ed è meglio concepito per sviluppare applicazioni di rete che li utilizzano. Ha il supporto per i thread per casi d'uso in cui non è possibile fornire I/O asincroni non bloccanti. Questo si basa sul fatto che la maggior parte del tempo viene speso in attesa nelle operazioni di I/O di rete.
Il modello che sfrutta questo è il modello di threading in cui si creano più thread, ognuno dei quali esegue una singola attività o un singolo processo che utilizza I/O non bloccanti per eseguire più attività in un singolo processo interlacciando più attività. Twisted è molto adatto per il secondo modello.
non-Blocking modello
+--------------------------+
|task1 | wait period | comp|
+--------------------------+
+--------------------------+
|task2 | wait period | comp|
+--------------------------+
È possibile sviluppare un server molto robusto con Twisted ed ha il supporto POP3/IMAP.
C'è un esempio di come creare pop3 client with twisted.
Niente affatto. Un client e un server non sono poi così diversi quando si tratta del livello di rete. –