piccole modifiche

This commit is contained in:
Davide Fiori 2018-01-04 16:59:43 +01:00
parent 13c736e040
commit b7b42264fc
1 changed files with 53 additions and 51 deletions

104
client.c
View File

@ -149,62 +149,64 @@ int main(int argc, char *argv[])
fflush(stdout); //forza la scrittura dei dati bufferizzati sullo stream fflush(stdout); //forza la scrittura dei dati bufferizzati sullo stream
return(4); return(4);
} }
fflush(stdout); do{
scelta=menu(); fflush(stdout);
if(scelta==0) scelta=menu();
messaggio="make\n"; if(scelta==0)
if(scelta==1) messaggio="make\n";
messaggio="sell\n"; if(scelta==1)
if(scelta==2){ messaggio="sell\n";
scanf("%lf",&prezzo); if(scelta==2){
messaggio="set price"+prezzo+"\n"; scanf("%lf",&prezzo);
messaggio="set price"+prezzo+"\n";
}
if(scelta==3){
scanf("%u",&bitto);
messaggio="buy bitto"+bitto;
} }
if(scelta==3){ if(scelta==4){
scanf("%u",&bitto); scanf("%u",&farina);
messaggio="buy bitto"+bitto; messaggio="buy flour"+farina;
} }
if(scelta==4){
scanf("%u",&farina); /* scrittura => invio del messaggio al server */
messaggio="buy flour"+farina; len = strlen(messaggio)+1;
} nwrite=0;
} printf ("lunghezza messaggio %d write()\n", len);
fflush(stdout);
/* scrittura => invio del messaggio al server */ while( (n=write(socketfd, &(messaggio[nwrite]), len-nwrite)) >0 )
len = strlen(messaggio)+1; nwrite+=n;
nwrite=0; if(n<0) {
printf ("lunghezza messaggio %d write()\n", len); char msgerror[1024];
fflush(stdout); sprintf(msgerror,"errore operazione di write()[err %d] ",errno);
while( (n=write(socketfd, &(messaggio[nwrite]), len-nwrite)) >0 ) perror(msgerror);
nwrite+=n; return(5);
if(n<0) { }
char msgerror[1024];
sprintf(msgerror,"errore operazione di write()[err %d] ",errno);
perror(msgerror);
return(5);
}
printf("stringa spedita: %s\n", messaggio); printf("stringa spedita: %s\n", messaggio);
fflush(stdout); //forza la scrittura dei dati bufferizzati sullo stream fflush(stdout); //forza la scrittura dei dati bufferizzati sullo stream
/* lettura della risposta */ /* lettura della risposta */
nread=0; nread=0;
printf ("read()\n"); printf ("read()\n");
while( (len>nread) && ((n=read(socketfd, &(buffer[nread]), len-nread )) >0)) while( (len>nread) && ((n=read(socketfd, &(buffer[nread]), len-nread )) >0))
{ {
nread+=n; // aggiorna il numero di byte letti nread+=n; // aggiorna il numero di byte letti
printf("read effettuata, risultato n=%d len=%d nread=%d \n", n, len, nread); printf("read effettuata, risultato n=%d len=%d nread=%d \n", n, len, nread);
} }
if(n<0) // si e' verificato un errore if(n<0) // si e' verificato un errore
{ {
char msgerror[1024]; char msgerror[1024];
sprintf(msgerror,"errore in lettura read() [err %d] ",errno); sprintf(msgerror,"errore in lettura read() [err %d] ",errno);
perror(msgerror); // visualizza la descrizione dell'errore perror(msgerror); // visualizza la descrizione dell'errore
return(6); return(6);
} }
/* stampa risultato */ /* stampa risultato */
printf("stringa ricevuta: %s\n", buffer); printf("stringa ricevuta: %s\n", buffer);
fflush(stdout); //forza la scrittura dei dati bufferizzati sullo stream fflush(stdout); //forza la scrittura dei dati bufferizzati sullo stream
}while(scelta!=5);
/* chiusura socket */ /* chiusura socket */
close(socketfd); close(socketfd);