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:
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: