diff --git a/11.client-server-test-error- read write on closed socket/client b/11.client-server-test-error- read write on closed socket/client index 423dc80..769765d 100755 Binary files a/11.client-server-test-error- read write on closed socket/client and b/11.client-server-test-error- read write on closed socket/client differ diff --git a/11.client-server-test-error- read write on closed socket/daytimecli.c b/11.client-server-test-error- read write on closed socket/daytimecli.c index 811d59a..f169889 100644 --- a/11.client-server-test-error- read write on closed socket/daytimecli.c +++ b/11.client-server-test-error- read write on closed socket/daytimecli.c @@ -1,6 +1,4 @@ - - -#include "../basic.h" +#include "../basic.h" #include void sigpipeaction (int signal){ @@ -16,6 +14,7 @@ void sigpipeaction (int signal){ int main(int argc, char **argv) { + struct sigaction sigpipestructure; sigpipestructure.sa_handler = sigpipeaction; sigpipestructure.sa_flags = 0; @@ -58,12 +57,13 @@ int main(int argc, char **argv) { char * socket_buffer = (char *) malloc (r_server_local_addr_len) ; int ridden; + int written; - + sleep(5); - - for (int i = 0; i < 100; i ++){ + int i; + for ( i = 0; i < 5; i ++){ ridden = read (sockfd, socket_buffer,r_server_local_addr_len ); if (ridden < 0){ @@ -74,8 +74,19 @@ int main(int argc, char **argv) { } } + for ( i = 0; i < 1; i ++){ + + written = write (sockfd, socket_buffer,r_server_local_addr_len /2 ); + if (written < 0){ + fprintf(stdout,"Errore durante la scrittura\n"); + exit(-1); + } else { + fprintf(stdout,"Ho scritto %d bytes\n",written); + } + } + - close(sockfd); + memcpy (&r_server_local_addr,socket_buffer, r_server_local_addr_len); @@ -90,5 +101,6 @@ int main(int argc, char **argv) { fprintf (stdout,"%s%c%hu\n",buff,':',port); + exit(0); } diff --git a/11.client-server-test-error- read write on closed socket/daytimecli.o b/11.client-server-test-error- read write on closed socket/daytimecli.o index 3753eb4..459d3bd 100644 Binary files a/11.client-server-test-error- read write on closed socket/daytimecli.o and b/11.client-server-test-error- read write on closed socket/daytimecli.o differ diff --git a/11.client-server-test-error- read write on closed socket/daytimesrv.c b/11.client-server-test-error- read write on closed socket/daytimesrv.c index 12c17fd..8dd6a37 100644 --- a/11.client-server-test-error- read write on closed socket/daytimesrv.c +++ b/11.client-server-test-error- read write on closed socket/daytimesrv.c @@ -57,7 +57,16 @@ int main(int argc, char **argv) { memcpy (socket_buffer, &server_local_addr, server_local_addr_len); write (connfd,socket_buffer, server_local_addr_len); + int ridden; + struct sockaddr_in t; + unsigned int t1 = sizeof(t); + + ridden = read (connfd, &t,t1 ); + printf("Letto %d bytes\n",ridden); + close(connfd); + printf("Chiuso socket lato server\n"); + } } diff --git a/11.client-server-test-error- read write on closed socket/daytimesrv.o b/11.client-server-test-error- read write on closed socket/daytimesrv.o index e160c2e..f275a5a 100644 Binary files a/11.client-server-test-error- read write on closed socket/daytimesrv.o and b/11.client-server-test-error- read write on closed socket/daytimesrv.o differ diff --git a/11.client-server-test-error- read write on closed socket/makefile b/11.client-server-test-error- read write on closed socket/makefile index 16fdd6d..a9beab6 100644 --- a/11.client-server-test-error- read write on closed socket/makefile +++ b/11.client-server-test-error- read write on closed socket/makefile @@ -1,9 +1,14 @@ +CC = gcc +CFLAGS = all : server client + server : daytimesrv.o ../fun-corso-reti.o - gcc -o server daytimesrv.o ../fun-corso-reti.o + $(CC) -o server daytimesrv.o ../fun-corso-reti.o $(CFLAGS) client : daytimecli.o ../fun-corso-reti.o - gcc -o client daytimecli.o ../fun-corso-reti.o + $(CC) -o client daytimecli.o ../fun-corso-reti.o $(CFLAGS) daytimesrv.o : daytimesrv.c ../basic.h - gcc -c -o daytimesrv.o daytimesrv.c + $(CC) -c -o daytimesrv.o daytimesrv.c $(CFLAGS) fun-corso-reti.o : ../fun-corso-reti.c ../basic.h - gcc -c -o ../fun-corso-reti.o ../fun-corso-reti.c + $(CC) -c -o ../fun-corso-reti.o ../fun-corso-reti.c $(CFLAGS) +daytimecli.o : daytimecli.c ../basic.h + $(CC) -c -o daytimecli.o daytimecli.c $(CFLAGS) diff --git a/11.client-server-test-error- read write on closed socket/makefile~ b/11.client-server-test-error- read write on closed socket/makefile~ index ed76715..7a44636 100644 --- a/11.client-server-test-error- read write on closed socket/makefile~ +++ b/11.client-server-test-error- read write on closed socket/makefile~ @@ -1,8 +1,14 @@ +CC = gcc +CFLAGS =-std=c99 +all : server client + server : daytimesrv.o ../fun-corso-reti.o - gcc -o server daytimesrv.o ../fun-corso-reti.o + $(CC) -o server daytimesrv.o ../fun-corso-reti.o $(CFLAGS) client : daytimecli.o ../fun-corso-reti.o - gcc -o client daytimecli.o ../fun-corso-reti.o + $(CC) -o client daytimecli.o ../fun-corso-reti.o $(CFLAGS) daytimesrv.o : daytimesrv.c ../basic.h - gcc -c -o daytimesrv.o daytimesrv.c + $(CC) -c -o daytimesrv.o daytimesrv.c $(CFLAGS) fun-corso-reti.o : ../fun-corso-reti.c ../basic.h - gcc -c -o ../fun-corso-reti.o ../fun-corso-reti.c + $(CC) -c -o ../fun-corso-reti.o ../fun-corso-reti.c $(CFLAGS) +daytimecli.o : daytimecli.c ../basic.h + $(CC) -c -o daytimecli.o daytimecli.c $(CFLAGS) diff --git a/11.client-server-test-error- read write on closed socket/server b/11.client-server-test-error- read write on closed socket/server index 65d3aab..b346179 100755 Binary files a/11.client-server-test-error- read write on closed socket/server and b/11.client-server-test-error- read write on closed socket/server differ diff --git a/fun-corso-reti.o b/fun-corso-reti.o index 0422e80..5b8cdd9 100644 Binary files a/fun-corso-reti.o and b/fun-corso-reti.o differ