projects
/
gapil.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Completato capitolo sui socket TCP elementari (almeno come infrastruttura),
[gapil.git]
/
sources
/
TCP_echo.c
diff --git
a/sources/TCP_echo.c
b/sources/TCP_echo.c
index 46ec5ca23d3402d8b080c2748197efec7b181c26..86b78c2762a1806840bb757680d6ee0c49d7b317 100644
(file)
--- a/
sources/TCP_echo.c
+++ b/
sources/TCP_echo.c
@@
-1,4
+1,4
@@
-/* TCP_echo
1
.c
+/* TCP_echo.c
*
* Copyright (C) 2001-2003 Simone Piccardi
*
*
* 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
* Simple TCP client for echo service (port 7)
*
* Author: Simone Piccardi
@@
-26,7
+26,7
@@
*
* Usage: echo -h give all info's
*
*
* Usage: echo -h give all info's
*
- * $Id: TCP_echo.c,v 1.
6 2003/07/28 22:16:36
piccardi Exp $
+ * $Id: TCP_echo.c,v 1.
8 2003/08/17 23:03:44
piccardi Exp $
*
****************************************************************/
/*
*
****************************************************************/
/*
@@
-115,7
+115,6
@@
int main(int argc, char *argv[])
perror("Cannot set linger");
exit(1);
}
perror("Cannot set linger");
exit(1);
}
- return 0;
}
/* do read/write operations */
ClientEcho(stdin, sock);
}
/* do read/write operations */
ClientEcho(stdin, sock);
@@
-142,15
+141,22
@@
void ClientEcho(FILE * filein, int socket)
while (fgets(sendbuff, MAXLINE, filein) != NULL) {
nwrite = FullWrite(socket, sendbuff, strlen(sendbuff));
if (nwrite < 0) {
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) {
}
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");
}
recvbuff[nread] = 0;
if (fputs(recvbuff, stdout) == EOF) {
perror("Errore in scrittura su terminale");
+ return;
}
}
return;
}
}
return;