Completato capitolo sui socket TCP elementari (almeno come infrastruttura),
[gapil.git] / listati / ClientEcho_second.c
1 void ClientEcho(FILE * filein, int socket) 
2 {
3     char sendbuff[MAXLINE+1], recvbuff[MAXLINE+1];
4     int nread, nwrite; 
5     while (fgets(sendbuff, MAXLINE, filein) != NULL) {
6         nwrite = FullWrite(socket, sendbuff, strlen(sendbuff)); 
7         if (nwrite < 0) {
8             printf("Errore in scrittura: %s", strerror(errno));
9             return;
10         }
11         nread = read(socket, recvbuff, strlen(sendbuff));
12         if (nread < 0) {
13             printf("Errore in lettura: %s\n", strerror(errno));
14             return;
15         }
16         if (nread == 0) {
17             printf("End of file in lettura %s\n");
18             return;
19         }
20         recvbuff[nread] = 0;
21         if (fputs(recvbuff, stdout) == EOF) {
22             perror("Errore in scrittura su terminale");
23             return;
24         }
25     }
26     return;
27 }