PDA

View Full Version : pipe fra processi


lattone
23-09-2004, 14:25
Salve a tutti.... :)

Sto realizzando un progetto in C del tipo client-server che deve funzionare nel seguente modo:
Il client invia richieste al server che effettua delle operazioni e restituisce i risultati al client.

Ho il server e un client. Il server deve creare il processo figlio ed eseguire il codice del cliente con una EXEC.

Lo schema generale del server e questo (considerando solo la comunicazione server -> client):

pipe(p[]); \\crea pipe
pid = fork()
if (pid==0){ \\ figlio
close(p[0]);
dup(p[0]); \\ redirigo STDIN
execv("client",.......) \\ eseguo il client
}
else{ \\ padre
close(p[1]);
dup(p[1]); \\ redirigo STDOUT
........
}

Ora, tutto cio che il server scrive tramite write su standard out va in standard in del client.
Ma come spedisco i messaggi dal server e come li ricevo dal client ??

:mc:

Maverick82^
23-09-2004, 15:37
i processi connessii dalla pipe devono avere un antenato in comune. Secondo me per lil tuo progetto ti conviene usare le FIFO(che sono sempre delle pipe) che ti permettono di connettere 2 processi qualsiasi.