PDA

Visualizza la versione completa : [C]Fifo vs Client/Server


Il Pazzo
29-07-2014, 09:23
Salve,
premetto che non richiedo la risoluzione tecnica del problema ma ho bisogno di capire concettualmente cosa mi sta chiedendo il professore per un esame, solo della parte C. Forse non ho capito cosa sono le FIFO, forse non ho capito a cosa servono... boh...


Vi spiego in breve in cosa consiste l'esame per chiarirvi il contesto:


Devo definire degli script Bash e programmi in C per la correzione automatica dei compiti degli studenti.
La parte Bash prende sti compiti e dopo vari controlli e alla fine scrive su un file il punteggio per ogni esercizio e quindi dell'intero compito. Fino a qui tutto chiaro.


Poi il professore richiede quattro programmi C e qui entro in confusione:



fifo_reader
un client scritto in C che legge il contenuto di una fifo e lo stampa su stdout
Prende come parametro il nome della fifo


fifo_writer
un client scritto in C che scrive il contenuto dello stdin in una fifo
Prende come parametro il nome della fifo.


network_server_echo
server C che ascolta su una port di rete (TCP o UDP) e:
legge le stringhe sullo stream di input
scrive la stringa letta sul corrispondente stream di output


network_client_echo
versione client di network_server_echo




Quello che non mi spiego è: ma un fifo writer e un fifo reader non equivalgono a un client server? Non sta richiedendo una ridondanza in qualche maniera? Oppure non mi è chiaro il ruolo che avranno questi programmi?


Grazie.

maluz1
02-08-2014, 19:28
ciao!:) io ero rimasto che le fifo erano le liste first in first out. Il tuo problema è come gestirle quindi? scusami ma non ho capito bene...:confused:

paolino_delta_t
02-08-2014, 22:00
Quello che non mi spiego è: ma un fifo writer e un fifo reader non equivalgono a un client server? Non sta richiedendo una ridondanza in qualche maniera? Oppure non mi è chiaro il ruolo che avranno questi programmi?


Si, c'è ridondanza riguardo i ruoli, perchè sia fifo_write/fifo_reader sia i due network_ecc... implementano architetture client/server ( cioè uno esegue compiti per conto dell'altro ).

Tuttavia non c'è ridondanza nei meccanismi, perchè i network_ecc... usano i socket, mentre gli altri due usano le fifo ( pipe con nome ). Fifo, pipe e socket sono meccanismi offerti dai sistemi unix/posix per implementare la comunicazione interprocesso.

Leggiti questo http://massimocallisto.files.wordpress.com/2010/05/03-lso_system-call-5.pdf per maggiori informazioni.

Loading