Python - Connessioni multiple

Sommario
Come sappiamo Pitone Ha molte librerie che ci consentono di lavorare e gestire le connessioni in rete, sia che ci colleghiamo a file remoti o che il nostro programma funga da server, in esempi di base dell'utilizzo di socket con Pitone si è visto che si maneggia molto facilmente con l'uso del modulo presaTuttavia, affinché sia ​​un'applicazione più robusta, dobbiamo essere in grado di gestire più connessioni.
Per gestire più connessioni in Pitone possiamo usare il biforcazione e da filettatura, per poter generare processi di input e output asincroni che ci permettano di partecipare a più connessioni contemporaneamente.
Inforcamento e filettatura
Se siamo ai primi passi per imparare a programmare o se abbiamo fatto solo programmazione strutturata, forse questi termini possono sembrare complicati per essere sconosciuti, tuttavia sono concetti semplici da capire e digerire, vediamo le definizioni prima di procedere oltre.
biforcazione: È un termine usato negli ambienti UNIX e consiste nel fare una biforcazione, con un processo lo duplichiamo e quindi abbiamo due processi uguali ma ognuno con il suo ambito, il processo originale è noto come processo genitore e il processo duplicato è noto come processo figlio, se facciamo un'analogia con la fantascienza, possiamo vederli come universi paralleli, dove esistono le stesse cose solo che possono comportarsi diversamente negli stessi punti.
Il lato negativo di biforcazione è che può essere molto costoso in termini di risorse ed è per questo che abbiamo il filettatura, un Filo È un thread, in questo caso i thread sono sottoprocessi che appartengono allo stesso processo, condividendo memoria e risorse, in questo modo abbassiamo il costo delle risorse del processore, tuttavia condividendo la memoria troviamo il problema che dobbiamo essere molto attenti con gli elementi a cui il Discussioni per non compromettere le operazioni.
Ora che conosciamo la teoria e i concetti di base, vedremo alcuni esempi con cui possiamo vedere l'applicazione in Pitone.
Come avevamo detto all'inizio grazie al gran numero di moduli e librerie esistenti in Pitone, realizzare programmi con funzionalità di rete è molto semplice, quindi possiamo concentrarci sulla logica invece che sugli aspetti tecnici.
Vediamo nell'immagine seguente un esempio di biforcazione, quindi spiegheremo cosa succede con il codice:

La prima cosa che facciamo è importare i moduli da cui abbiamo bisogno SocketServer, importante che guardiamo è ForkingMixIn chi si occuperà di gestire la duplicazione dei processi ad ogni richiesta, poi definiamo la classe serverGestoreAll'interno di Handler posizioniamo un costruttore, che è colui che gestirà ciò che accadrà con le connessioni in entrata, in questo caso otterrà il nome del client e farà una serigrafia di un messaggio; Infine istanziamo la classe Server, le passiamo i parametri, prima la porta dove accetterà le connessioni e poi la classe Gestore, infine chiamiamo il metodo servire_per sempre per avviare il server in modo che possa gestire le richieste dei client.
Come vediamo questa applicazione è abbastanza semplice, vediamo come possiamo ottenere qualcosa di simile usando Discussioni, nell'immagine seguente abbiamo un esempio:

Possiamo renderci conto che è quasi esattamente lo stesso codice sopra con la differenza che invece di usare ForkingMixIn, noi usiamo ThreadingMixInQuindi, come possiamo vedere, queste sono le librerie chiave per questo comportamento quando si creano programmi che accettano più connessioni.Ti è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave