Server/Client socket TODO in Python

python-logo

Un classico esercizio che anche qui sul sito abbiamo visto in molti linguaggi e tecnologie. Questa volta lo affrontiamo in python utilizzando socket e dinamica client/server. Non teniamo conto di multi client con concorrenza ma vogliamo realizzare un client capace di inviare ad un server una sorta di lista delle cose da fare specificando un … Leggi tutto

Server/Client socket prenotazione in python

python-logo

Vogliamo realizzare un piccolo servizio di prenotazione posti teatro/cinema/bus usando una connessione socket client/server. Per il momento tralasciamo considerazioni sulla concorrenza delle risorse e la contesa tra più client. Il codice lo scriviamo asciutto e decisamente semplificato senza uso di try/catch ed elementi di validazione/correzione accurati. L’esercizio è collegato a quello visto in Server/Client Ping … Leggi tutto

Server/Client Ping Pong in Python

python-logo

Vogliamo realizzare un primo semplice esempio di applicativo di rete client/server che simuli una sorta di botta e risposta tra le due parti: il client invia un saluti “ping”, il server in ascolto legge il saluti e risponde “pong”. Sfruttiamo la tecnologia dei socket e il linguaggio Python. Comunicazione in rete L’esercizio rientra nello studio … Leggi tutto

I thread in Python

python

I thread sono la naturale evoluzione delle tecniche di fork/join viste in queste pagine. Come ampiamente trattato sui manuali, il thread non condivide tutto il codice del processo che lo genera e non c’è quindi la necessità di selezionare gli opportuni percorsi nel codice tra processi padre/figlio. Il thread è più snello anche da creare e gestire, seppur con limiti. Vediamo come in Python.

Leggi tutto

Somme su indici di un vettore con due processi in Python

python-logo

Dato un vettore di 10 interi, dire se la somma degli elementi di posto (indice) pari è maggiore della somma degli elementi di posto dispari. Implementare il precedente algoritmo con una programmazione concorrente che preveda esattamente due sotto-processi in parallelo fornendo il grafo delle precedenze.

Leggi tutto

La chiamata wait() in Python

sistemi operativi

Abbiamo visto, nelle esercitazioni precedenti, il comportamento non deterministico delle chiamate fork con l’esecuzione di figli, anche simulando codice con la chiamata time.sleep(). Il comportamento in questi casi è lasciato allo scheduler ma in molti casi, è consigliabile che il padre attenda l’esecuzione dei figli, magari per raccogliere i dati elaborati e usarli nel flusso principale.

Leggi tutto