Completato capitolo sui socket TCP elementari (almeno come infrastruttura),
[gapil.git] / sources / TCP_echo.c
index 7fdb8370202a60be91ce204e49903756d7b69fa0..86b78c2762a1806840bb757680d6ee0c49d7b317 100644 (file)
@@ -1,4 +1,4 @@
-/* TCP_echo1.c
+/* TCP_echo.c
  * 
  * Copyright (C) 2001-2003 Simone Piccardi
  * 
@@ -18,7 +18,7 @@
  */
 /****************************************************************
  *
- * Program ElemEchoTCPClient.c
+ * Program TCP_echo.c
  * Simple TCP client for echo service (port 7)
  *
  * Author: Simone Piccardi
@@ -26,7 +26,7 @@
  *
  * Usage: echo -h give all info's
  *
- * $Id: TCP_echo.c,v 1.7 2003/08/03 18:12:47 piccardi Exp $
+ * $Id: TCP_echo.c,v 1.8 2003/08/17 23:03:44 piccardi Exp $
  *
  ****************************************************************/
 /* 
@@ -141,15 +141,22 @@ void ClientEcho(FILE * filein, int socket)
     while (fgets(sendbuff, MAXLINE, filein) != NULL) {
        nwrite = FullWrite(socket, sendbuff, strlen(sendbuff)); 
        if (nwrite < 0) {
-           printf("Errore in scrittura %s", strerror(errno));
+           printf("Errore in scrittura: %s", strerror(errno));
+           return;
        }
         nread = read(socket, recvbuff, strlen(sendbuff));
        if (nread < 0) {
-           printf("Errore in lettura %s\n", strerror(errno));
+           printf("Errore in lettura: %s\n", strerror(errno));
+           return;
+       }
+       if (nread == 0) {
+           printf("EOF sul socket\n");
+           return;
        }
        recvbuff[nread] = 0;
        if (fputs(recvbuff, stdout) == EOF) {
            perror("Errore in scrittura su terminale");
+           return;
        }
     }
     return;