From 619c07cae2c15f64c87fa6f741d018d6dfc04c89 Mon Sep 17 00:00:00 2001 From: xgiovio Date: Fri, 30 May 2014 23:33:12 +0200 Subject: [PATCH] Completato esercizio di gestioen database client-server. Archivio.txt e comandi aggiungi nome voto,verifica nome. --- .../archivio.txt | 7 + .../archivio.txt~ | 7 + .../client | Bin 0 -> 13815 bytes .../daytimecli.c | 136 ++++++++++++++++++ .../daytimecli.c~ | 0 .../daytimecli.o | Bin 0 -> 6016 bytes .../daytimesrv.c | 88 ++++++++---- .../daytimesrv.c~ | 0 .../daytimesrv.o | Bin 0 -> 8144 bytes .../makefile | 0 .../makefile~ | 0 .../readme | 16 +++ .../readme~ | 14 ++ .../server | Bin 0 -> 14120 bytes 11.client-server-exam-database/client | Bin 13964 -> 0 bytes 11.client-server-exam-database/daytimecli.c | 106 -------------- 11.client-server-exam-database/daytimecli.o | Bin 4344 -> 0 bytes 11.client-server-exam-database/daytimesrv.o | Bin 5600 -> 0 bytes 11.client-server-exam-database/readme | 0 11.client-server-exam-database/readme~ | 0 11.client-server-exam-database/server | Bin 13656 -> 0 bytes fun-corso-reti.o | Bin 0 -> 2944 bytes test/test2 | Bin 0 -> 8543 bytes test/test2.c | 24 ++++ test/test2.c~ | 24 ++++ 25 files changed, 286 insertions(+), 136 deletions(-) create mode 100755 11.client-server-exam-database (COMPLETE)/archivio.txt create mode 100755 11.client-server-exam-database (COMPLETE)/archivio.txt~ create mode 100755 11.client-server-exam-database (COMPLETE)/client create mode 100644 11.client-server-exam-database (COMPLETE)/daytimecli.c rename {11.client-server-exam-database => 11.client-server-exam-database (COMPLETE)}/daytimecli.c~ (100%) create mode 100644 11.client-server-exam-database (COMPLETE)/daytimecli.o rename {11.client-server-exam-database => 11.client-server-exam-database (COMPLETE)}/daytimesrv.c (62%) rename {11.client-server-exam-database => 11.client-server-exam-database (COMPLETE)}/daytimesrv.c~ (100%) create mode 100644 11.client-server-exam-database (COMPLETE)/daytimesrv.o rename {11.client-server-exam-database => 11.client-server-exam-database (COMPLETE)}/makefile (100%) rename {11.client-server-exam-database => 11.client-server-exam-database (COMPLETE)}/makefile~ (100%) create mode 100644 11.client-server-exam-database (COMPLETE)/readme create mode 100644 11.client-server-exam-database (COMPLETE)/readme~ create mode 100755 11.client-server-exam-database (COMPLETE)/server delete mode 100755 11.client-server-exam-database/client delete mode 100644 11.client-server-exam-database/daytimecli.c delete mode 100644 11.client-server-exam-database/daytimecli.o delete mode 100644 11.client-server-exam-database/daytimesrv.o delete mode 100644 11.client-server-exam-database/readme delete mode 100644 11.client-server-exam-database/readme~ delete mode 100755 11.client-server-exam-database/server create mode 100644 fun-corso-reti.o create mode 100755 test/test2 create mode 100644 test/test2.c create mode 100644 test/test2.c~ diff --git a/11.client-server-exam-database (COMPLETE)/archivio.txt b/11.client-server-exam-database (COMPLETE)/archivio.txt new file mode 100755 index 0000000..80f8464 --- /dev/null +++ b/11.client-server-exam-database (COMPLETE)/archivio.txt @@ -0,0 +1,7 @@ +MARIO 30 127.0.0.1:37968 +FONZO 15 127.0.0.1:37968 +CARLO 14 127.0.0.1:37981 +MARIO 1950 127.0.0.1:38094 +ARTUR 150 127.0.0.1:38099 +KOMBAT 150 127.0.0.1:38099 + diff --git a/11.client-server-exam-database (COMPLETE)/archivio.txt~ b/11.client-server-exam-database (COMPLETE)/archivio.txt~ new file mode 100755 index 0000000..5b0ab62 --- /dev/null +++ b/11.client-server-exam-database (COMPLETE)/archivio.txt~ @@ -0,0 +1,7 @@ +MARIO 30 127.0.0.1:37968 +FONZO 15 127.0.0.1:37968 +CARLO 14 127.0.0.1:37981 +MARIO 1950 127.0.0.1:38094 +ARTUR 150 127.0.0.1:38099 +KOMBAT 150 127.0.0.1:38099 +ione fornita da 127.0.0.1:38099 150 127.0.0.1:38099 diff --git a/11.client-server-exam-database (COMPLETE)/client b/11.client-server-exam-database (COMPLETE)/client new file mode 100755 index 0000000000000000000000000000000000000000..561684d0f0651d0b7152834a0d61cee0730c1be1 GIT binary patch literal 13815 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 K7bh>WCI1WWBHM5P literal 0 HcmV?d00001 diff --git a/11.client-server-exam-database (COMPLETE)/daytimecli.c b/11.client-server-exam-database (COMPLETE)/daytimecli.c new file mode 100644 index 0000000..e182339 --- /dev/null +++ b/11.client-server-exam-database (COMPLETE)/daytimecli.c @@ -0,0 +1,136 @@ +#include "../basic.h" +#include + +void sigpipeaction (int signal){ + + + //fprintf(stderr, "Sigpipe catturato\n"); + + +} + + +typedef struct message { + char data [50]; + char nome [50]; + char voto [50]; +}t_message; + +int main(int argc, char **argv) { + + + + struct sigaction sigpipestructure; + sigpipestructure.sa_handler = sigpipeaction; + sigpipestructure.sa_flags = 0; + + sigaction (SIGPIPE, &sigpipestructure, NULL); + + + + + + int sockfd; + struct sockaddr_in servaddr; + + if (argc != 3){ + printf("usage: daytimecli \n"); + exit(0); +} + if( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0 ){ + printf("socket error\n"); + exit(0); +} + bzero(&servaddr, sizeof(servaddr)); + servaddr.sin_family = AF_INET; + servaddr.sin_port = htons(atoi(argv[2])); /* server port */ + + if (inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0){ + printf("inet_pton error for %s\n", argv[1]); + exit(0); +} + if (connect(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr)) < 0){ + printf("connect error\n"); + exit(0); + } + + + int ridden; + int written; + t_message m; + + + + //// welcome from server - first message + for (ridden = read (sockfd,&m,sizeof(m)); ridden <= 0;ridden = read (sockfd,&m,sizeof(m))){ + if (errno == EINTR){continue;} else {exit(0);} + } + fprintf(stdout,"Server: %s\n",m.data);// answer from server + + char line [1000]; + char line_data [50]; + char line_nome [50]; + char line_voto [50]; + for(; ;){ + fprintf(stdout, "Inserisci comando: "); + fscanf (stdin,"%999[^\n]%*c",line); + sscanf (line, "%s", line_data); + if (strcmp("AGGIUNGI",line_data) == 0 || strcmp("VERIFICA",line_data) == 0){ + + if (strcmp("AGGIUNGI",line_data) == 0 ){ + sprintf(m.data,"AGGIUNGI"); + sprintf(line_nome,"def"); + sprintf(line_voto,"def"); + + sscanf (line, "%*s %s %s", line_nome,line_voto); + if (strcmp(line_nome,"def") == 0 || strcmp(line_voto,"def") == 0){ + fprintf(stdout,"Comando invalido\n"); + continue; + }else{ + sprintf(m.nome,"%s",line_nome); + sprintf(m.voto,"%s",line_voto); + } + + } else { + sprintf(m.data,"VERIFICA"); + sprintf(line_nome,"def"); + sscanf (line, "%*s %s ", line_nome); + if (strcmp(line_nome,"def") == 0 ){ + fprintf(stdout,"Comando invalido\n"); + continue; + }else{ + sprintf(m.nome,"%s",line_nome); + } + + } + + for (written = write (sockfd, &m, sizeof (m) ); written == -1; written = write (sockfd, &m, sizeof (m)) ){ + if (errno == EINTR){continue;} else {exit(0);} + } + for (ridden = read (sockfd,&m,sizeof(m)); ridden <= 0;ridden = read (sockfd,&m,sizeof(m))){ + if (errno == EINTR){continue;} else {exit(0);} + } + fprintf(stdout,"Server: %s\n",m.data);// answer from server + + + } else { + sprintf(m.data,"Bye"); + + for (written = write (sockfd, &m, sizeof (m) ); written == -1; written = write (sockfd, &m, sizeof (m)) ){ + if (errno == EINTR){continue;} else {exit(0);} + } + + for (ridden = read (sockfd,&m,sizeof(m)); ridden <= 0;ridden = read (sockfd,&m,sizeof(m))){ + if (errno == EINTR){continue;} else {exit(0);} + } + + fprintf(stdout,"Server: %s\n",m.data);// answer from server + break; + + } + } + + + + exit(0); +} diff --git a/11.client-server-exam-database/daytimecli.c~ b/11.client-server-exam-database (COMPLETE)/daytimecli.c~ similarity index 100% rename from 11.client-server-exam-database/daytimecli.c~ rename to 11.client-server-exam-database (COMPLETE)/daytimecli.c~ diff --git a/11.client-server-exam-database (COMPLETE)/daytimecli.o b/11.client-server-exam-database (COMPLETE)/daytimecli.o new file mode 100644 index 0000000000000000000000000000000000000000..12ce34cdf054200b2dd379555b9300d8b6233528 GIT binary patch literal 6016 zcmds)e{2**6vwAOfKp4ZA_{`w8LesgaexZihG0uA-5MZ>7E!>m-0jf~boX+*1xf@o zNfq(EHOsd9UgZ^RE1d&+Zo1N*s8}3Rm#y_0& zc4t2Goj32jot@e4u3xq^KQE8TlE)UabW2jk&K9NXHN0BGCa_}GqB3iPryaGmOUj60yy;^@_04Q4MPqbX|Yg&rKqewOH)QJgj z{}CG<+){x%=>)boO4qpjI68YGU-o*5PO#b0gICs`b(of_AJF>I9@F}3cv#W?`hk3= zB@^hd*3nz0CBct=K40MDUQvsB_22Qqsg;FkZ4uX=O1qHg-90CxyX+G_mvN&#QPLAQX)B&6le9H(z6TM!ai1FOfTR_eqicFwlrVEU#W_(F1!TVANf$|aW+|Q#3a(TCwI)J*&e5MjU^YeM6aKu1o z!)ol-MD9n{wpC_%R5z=SYH$c%B*+H$K|Jw}zWd;n)V#0xisCa4_e4m~;7PD16L8(k zC{NrET3K5+l8aHscjxuv8|hWqdxNhQ*Jr$1NQT^=QM{4=(HlHiqAX}!sw2DiKg>c` zdixu!_!AGMHb>uNR0kt^yKA-@;Vouxk!eNDxVdA8-MDgba8b;TyZYiFbL{YD!wnko zxE*JvWw^~T*S7q2Flxtxa7rRs4bzSW3V^PWb_G2*5ZHiKciRktE`b&!=; zRaLEhrg(k%%rGl=SZzZ?W7CR;Mz*?sRpZjex>^=7qO5$T0|wxa)%gR1rnObyVn*y@ z*~gZ&8;mv7)l~;8nl`psZrj{trlrU2-~*wBq5J2|Z{u)5rQgQ=iA~~H#`1QoVtL!k z@}`xHE9!zJatCnyVZrT})s~jMkY6`p>?0t6CiX2t4&^KO1{m(=1TG<`z17t>!rg_$ z;k`xH;>H#|!i8_(sa-7sY2^D0j|7BwQ8YvWa)$A(ZYEDtQa_bs`Hbsj4J91*)Om&URw%= zpI&BPK~_)Dzib&s&c8J?jXL&(bG&D9jvlQ_PGRde}8>i?!;eg-A4GZLY(N?WQZvbf&wu$y(qv zchUzti^WaLjmi_9#SJ~enw#PHx9sLEc39_@9XDdPxhyKg(QR?lH5gEsu({cUZ-%O> z=BN|at!TRK_-!~9!?AYe4`B~NTv%|wk!uv&PvZp&ZU@+R6}~I6v>=313_todwQ}m~ zaqp1&ZG_{$-I6B>$9G5a*94dLD@FSd(Np{H5>D-ZLpUCd(*8xl@p(#KDmE&N7x!4n z%LSMIEEMAx5dB1=f0%IU&lJCZbknr^kJDv z^tVG>>T3y~O88R6&R#SEB|`N0%_Z%`6un%>FDraMx5C($3YYrdbMR7exXL`dBJ9k_ z!DlJ_b)kP$aGZwv|CFMa_7geyJH!rsULPp>!(!gkL{FdBCBpGcl=&PZj%xIi@_^tn z4>F$>3YY#rr0^c$&uU_y=D|?((oQGQ(|GqQdKvHAL{H=Wf^ZtwMZ%|(Jp4vDeNQKg zO&0S*^_7Iv_jCo}^u1n7IJLivaH{VjoZ5d?aQR%;i9Eka^fYhB2&enNDaFob!p_e` zPvgBpIQ4(J_w&s@T(|4$H3GO$EdLw8rKqz2 literal 0 HcmV?d00001 diff --git a/11.client-server-exam-database/daytimesrv.c b/11.client-server-exam-database (COMPLETE)/daytimesrv.c similarity index 62% rename from 11.client-server-exam-database/daytimesrv.c rename to 11.client-server-exam-database (COMPLETE)/daytimesrv.c index 1390bd6..7b67c93 100644 --- a/11.client-server-exam-database/daytimesrv.c +++ b/11.client-server-exam-database (COMPLETE)/daytimesrv.c @@ -17,6 +17,13 @@ void sigchldaction (int signal){ } +void sigpipeaction (int signal){ + + //fprintf(stderr, "Sigpipe catturato\n"); + +} + + typedef struct message { @@ -27,13 +34,22 @@ typedef struct message { int main(int argc, char **argv) { - +//////////////////////////////////////////////////////////// SIGNALS +///////SIGCHLD struct sigaction sigchldstructure; sigchldstructure.sa_handler = sigchldaction; sigchldstructure.sa_flags = 0; sigaction (SIGCHLD, &sigchldstructure, NULL); +///////SIGPIPE +struct sigaction sigpipestructure; + sigpipestructure.sa_handler = sigpipeaction; + sigpipestructure.sa_flags = 0; + +sigaction (SIGPIPE, &sigpipestructure, NULL); +//////////////////////////////////////////////////////////// END SIGNALS + int listenfd, connfd, n; struct sockaddr_in servaddr; @@ -87,13 +103,14 @@ sigaction (SIGCHLD, &sigchldstructure, NULL); close(listenfd); t_message m; // buffer message structure - int ridden, wrote; + int ridden, written; sprintf ( m.data, "Benvenuto" ); - wrote = write (connfd, &m, sizeof (m) ); // scrivo benvenuto sul socket - // check wrote - - + //write with error check + for (written = write (connfd, &m, sizeof (m) ); written == -1; written = write (connfd, &m, sizeof (m)) ){ + if (errno == EINTR){continue;} else {exit(0);} + } + inet_ntop(AF_INET, &(client_addr.sin_addr), buff, INET_ADDRSTRLEN); // get client address port = ntohs(client_addr.sin_port);// get client port @@ -101,8 +118,10 @@ sigaction (SIGCHLD, &sigchldstructure, NULL); for ( ; ; ) {// the server child reserve other requests from same client - ridden = read (connfd,&m,sizeof(m)); - // check read. it's blocking + + for (ridden = read (connfd,&m,sizeof(m)); ridden <= 0;ridden = read (connfd,&m,sizeof(m))){ + if (errno == EINTR){continue;} else {exit(0);} + } int fd; @@ -111,29 +130,33 @@ sigaction (SIGCHLD, &sigchldstructure, NULL); if (fd < 0){ fd = open ("archivio.txt", O_CREAT | O_RDWR | O_APPEND ,00700); } - if (fd < 0){ - sprintf ( m.data, "Non posso modificare il database" ); - wrote = write (connfd, &m, sizeof (m) ); // scrivo sul socket - // check wrote - } else { + if (fd < 0){ + sprintf ( m.data, "Non posso modificare il database" ); + for (written = write (connfd, &m, sizeof (m) ); written == -1; written = write (connfd, &m, sizeof (m)) ){ + if (errno == EINTR){continue;} else {exit(0);} + } + } else { + // local writes. no checks write (fd,(m.nome), strlen ((m.nome))); write (fd," ", 1); write (fd,(m.voto), strlen ((m.voto)) ); write (fd," ", 1); write (fd,buff, strlen (buff)); write (fd,":", 1); - + char port_char[50]; sprintf (port_char,"%hu",port); write (fd,port_char, strlen (port_char)); write (fd,"\n", 1); - - + + sprintf ( m.data, "AGGIUNTO" ); - wrote = write (connfd, &m, sizeof (m) ); // scrivo sul socket - // check wrote - + for (written = write (connfd, &m, sizeof (m) ); written == -1; written = write (connfd, &m, sizeof (m)) ){ + if (errno == EINTR){continue;} else {exit(0);} + } + + close(fd); } } else { if (strcmp (m.data, "VERIFICA" ) == 0 ){ @@ -141,8 +164,9 @@ sigaction (SIGCHLD, &sigchldstructure, NULL); fd = open ("archivio.txt",O_RDONLY); if (fd < 0){ sprintf ( m.data, "Non posso leggere il database" ); - wrote = write (connfd, &m, sizeof (m) ); // scrivo sul socket - // check wrote + for (written = write (connfd, &m, sizeof (m) ); written == -1; written = write (connfd, &m, sizeof (m)) ){ + if (errno == EINTR){continue;} else {exit(0);} + } } else { char line [1000]; @@ -154,7 +178,7 @@ sigaction (SIGCHLD, &sigchldstructure, NULL); found = 0; FILE * fdfile = fdopen(fd,"r"); returned = fscanf (fdfile,"%999[^\n]%*c",line); - for( ; returned > 0 ; fscanf (fdfile,"%999[^\n]%*c",line) ){ + for( ; returned > 0 ; returned = fscanf (fdfile,"%999[^\n]%*c",line) ){ sscanf (line, "%s %s %s", line_nome, line_voto, line_ip_port); @@ -162,8 +186,9 @@ sigaction (SIGCHLD, &sigchldstructure, NULL); found = 1; sprintf ( m.data, "%s ha sostenuto l'esame con voto %s. Informazione fornita da %s ", line_nome, line_voto, line_ip_port ); - wrote = write (connfd, &m, sizeof (m) ); // scrivo sul socket - // check wrote + for (written = write (connfd, &m, sizeof (m) ); written == -1; written = write (connfd, &m, sizeof (m)) ){ + if (errno == EINTR){continue;} else {exit(0);} + } break; } @@ -171,17 +196,20 @@ sigaction (SIGCHLD, &sigchldstructure, NULL); } if (found == 0){ - sprintf ( m.data, "%s non ha sostenuto l'esame", &(m.nome) ); - wrote = write (connfd, &m, sizeof (m) ); // scrivo sul socket - // check wrote + sprintf ( m.data, "%s non ha sostenuto l'esame", m.nome ); + for (written = write (connfd, &m, sizeof (m) ); written == -1; written = write (connfd, &m, sizeof (m)) ){ + if (errno == EINTR){continue;} else {exit(0);} + } } - } + close(fd); + } } else { sprintf ( m.data, "Bye" ); - wrote = write (connfd, &m, sizeof (m) ); // scrivo sul socket - // check wrote + for (written = write (connfd, &m, sizeof (m) ); written == -1; written = write (connfd, &m, sizeof (m)) ){ + if (errno == EINTR){continue;} else {exit(0);} + } break; // end requests from client diff --git a/11.client-server-exam-database/daytimesrv.c~ b/11.client-server-exam-database (COMPLETE)/daytimesrv.c~ similarity index 100% rename from 11.client-server-exam-database/daytimesrv.c~ rename to 11.client-server-exam-database (COMPLETE)/daytimesrv.c~ diff --git a/11.client-server-exam-database (COMPLETE)/daytimesrv.o b/11.client-server-exam-database (COMPLETE)/daytimesrv.o new file mode 100644 index 0000000000000000000000000000000000000000..1843690ff6c1fe9027efc2903467fd776fed8e1e GIT binary patch literal 8144 zcmchce{38_701Uvni{w1Icb1|rexd1Z7Ag0nEt?4Rr~|T>yW0dRhJ+VoXy>yZxws@ zvb%QdqBNlM1+OkgszO5lXe)yFkv{+dQW|Vz`;sD@0t${)3V%S=RszL1ppvMn0Soiq z?2PZ-+S@nA_LI#FMN z_ryeVzLXU#d(FR4vl;BGn$B0KS?Iz9Z#;4)FLDX5`J9@2G@s=Sj#QyF?}8}I&W!&ycXE!81Q9-npMa=h^TFcnDsD$#nI5k#C-hJe&6}Za(Xs zkBsFr`ABAC8DnFm`o%21o~-jVsgjoH)%SOYRV>3j|B3YTEDVNyl3)NBrs>iz!8k5uox z`tGEfYlD&VLz+`-vKb6WVKw;AeAgSpaEtjVYozn>_t8px$*nX`UWfTdCzoh9GJYH< z>@ao+dct^sF2D>bOb>~d9>N@&S)v0AXAsPkilJp&-M*V*ET@`gaq(W)s+xv(1D_9k z>nMcHVojdep=uAD%uH12)9j)F>QAHW_Tw9HtZys)B ze1pQx>m*q7eZ+T*FdnojtSmIXEH8@b2gNeFc7)QS7$+7v_8Ppv(xW`|k<8biXL2R- z*PR~?o(%+gnWjeZ>ZqPSL-|W2yV|Q-CP$`knEF2K)`i!z|JIl5_Mvy@=AN0_3RehW zucLM8bxK?taE%__vHO&VQZW+mVlh1>MPQC4 zEPKBK7sYUOTXT&*U2$}~Pq&qXW_0Uu)~K6(y4mYmtf8f)wPR;XE7R;)(&#g+sN3(N z4NN;NQ%PBlV<|mW+(;NP&DIs88yt1DeVU^)h1Id@WG@`GeLGJ)#-40$Z{60~)IchC z>s?)Xpr*~LYin!2@WskK)%V0$wWIKVezW+P)D*|UK7x}<_uaaq_2^0r{OPj*R69|n z)r21QXipiIsbgnN!_~kuG=v6B&@N_#H4f;EwKO%=DVsa?^_p()y*mt3vn}QR=!4Nu zZrR$);R7G@pSeeCgkL33wX>4`s*>AozOmvNSk>!+;}25{UK(zxI#SxSaz$w)DEzXA zkwe0x&V2c2crmZL8#$zoO1Q}SoWLdO4D>*#;qJn8z)uSytJGMBk7TXU3tfnVB6E*}?HuJyU6)=FC+=_sqdhz^S>>EjN zQY%Wg!Bdc-;B683=S2ORfMGijTAtR5`(1EH4#&l!bScoTEDW~w2`E6D@3;O|sEh66 zM;A@9{R3D?lJsAqTF9W}J_*GA^EdmMj|aFkC-03=F7s46DC$#&`Jnc5f(88_67~B7 z27>;#LwPW!SY>E~Us3gM495@a%KCEr@LM<-dtOC+*K7Qta0&X4&q3c&eF{H*Ang^# zu{*d9gY6?*to;fx|1Lo}O~LkQ8O@`voc)6zQYgoK*@98<6=jQhg8IcGj2u6n7p5`> zf2CL?mCg6QxUg)&>SgQ}kgO(t@;we1?s+1#MMgFWz0~nN4_J-hZ9>iWI>)S&sNMoRWbiO#X39T*kxLs-Bt|FP|y?}t5~etf`iXN8;(}Y zFm<=nbgdMFOVVMsuEm*^(xK^;ZJ2I?CF1gS7uQ$K%9_y?iBv_BlMU&F1#M{yac9zUyVXtpWRO+&X-35IwcO zi*Rb+CVU;Se=uPGfUtjx=y9$|e@+ulYWmxcaFi2mz@({X%> za5^sM38&-uI^lF(UlCmT{~O^C{)ZeU$p`&Mc8}l~2Rfe{1Nz?yy+`!a&l7~xehm{& z^}i;Z_UrG0OFyrQcHbd-1(+Pi67iuT_3sG%2EnmkcM$!(0loaM(_KV=C(-v3zLD^w z0XtRVy>go9>3q9LIE};Wgwwc{h{H;7e%?wrjoU`SgK=medK!mBK>xV#e~9R*|KA~; z`u`KcssFDMPW68woccdYIGxWcutSh!zj}n9TLcfrr;c#y&mO|5KNjKCA1{QTAe{QC ba4-Gy1NtOWy~rTLUyFF&EAEoZ_xpbVYuoAn literal 0 HcmV?d00001 diff --git a/11.client-server-exam-database/makefile b/11.client-server-exam-database (COMPLETE)/makefile similarity index 100% rename from 11.client-server-exam-database/makefile rename to 11.client-server-exam-database (COMPLETE)/makefile diff --git a/11.client-server-exam-database/makefile~ b/11.client-server-exam-database (COMPLETE)/makefile~ similarity index 100% rename from 11.client-server-exam-database/makefile~ rename to 11.client-server-exam-database (COMPLETE)/makefile~ diff --git a/11.client-server-exam-database (COMPLETE)/readme b/11.client-server-exam-database (COMPLETE)/readme new file mode 100644 index 0000000..0cf2403 --- /dev/null +++ b/11.client-server-exam-database (COMPLETE)/readme @@ -0,0 +1,16 @@ + +SONO STATI CALCOALTI ERRORI SU READ,WRITE,CONNECT,SIGNALS +IL SERVER E' RICORSIVO E LE READ/WRITE SONO BLOCCANTI (SENZA SELECT) +PROTOCOLLO USATO TCP + +il server gestisce un file archivio.txt + +il client puo inviare: +BYE - per chiudere la connessione +AGGIUNGI - per far aggiungere un nome al server +VERIFICA - per verificare se un nome è presente nel database del server + +il server risponde: +BYE - A BYE +AGGIUNTO - AL COMANDO AGGIUNGI DEL CLIENT +EVENTUALI INFORMAZIONI SUI DATI - AL COMADNO VERIFICA diff --git a/11.client-server-exam-database (COMPLETE)/readme~ b/11.client-server-exam-database (COMPLETE)/readme~ new file mode 100644 index 0000000..fa0ff7c --- /dev/null +++ b/11.client-server-exam-database (COMPLETE)/readme~ @@ -0,0 +1,14 @@ + +SONO STATI CALCOALTI ERRORI SU READ,WRITE,CONNECT,SIGNALS + +il server gestisce un file archivio.txt + +il client puo inviare: +BYE - per chiudere la connessione +AGGIUNGI - per far aggiungere un nome al server +VERIFICA - per verificare se un nome è presente nel database del server + +il server risponde: +BYE - A BYE +AGGIUNTO - AL COMANDO AGGIUNGI DEL CLIENT +EVENTUALI INFORMAZIONI SUI DATI - AL COMADNO VERIFICA diff --git a/11.client-server-exam-database (COMPLETE)/server b/11.client-server-exam-database (COMPLETE)/server new file mode 100755 index 0000000000000000000000000000000000000000..24a4eb3379abcbb7ab95c638642497719b15db5f GIT binary patch literal 14120 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 literal 0 HcmV?d00001 diff --git a/11.client-server-exam-database/client b/11.client-server-exam-database/client deleted file mode 100755 index 769765d060afdc7b688fff512868e08a1f036668..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13964 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 ICCu1=1C)FGt^fc4 diff --git a/11.client-server-exam-database/daytimecli.c b/11.client-server-exam-database/daytimecli.c deleted file mode 100644 index f169889..0000000 --- a/11.client-server-exam-database/daytimecli.c +++ /dev/null @@ -1,106 +0,0 @@ -#include "../basic.h" -#include - -void sigpipeaction (int signal){ - - int status, pid; - - fprintf(stderr, "Sigpipe catturato\n"); - - -} - - -int main(int argc, char **argv) { - - - - struct sigaction sigpipestructure; - sigpipestructure.sa_handler = sigpipeaction; - sigpipestructure.sa_flags = 0; - - sigaction (SIGPIPE, &sigpipestructure, NULL); - - - - siginterrupt (SIGPIPE,1); - - - - - int sockfd; - struct sockaddr_in servaddr; - - if (argc != 3){ - printf("usage: daytimecli \n"); - exit(0); -} - if( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0 ){ - printf("socket error\n"); - exit(0); -} - bzero(&servaddr, sizeof(servaddr)); - servaddr.sin_family = AF_INET; - servaddr.sin_port = htons(atoi(argv[2])); /* server port */ - - if (inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0){ - printf("inet_pton error for %s\n", argv[1]); - exit(0); -} - if (connect(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr)) < 0){ - printf("connect error\n"); - exit(0); - } - - struct sockaddr_in r_server_local_addr; - unsigned int r_server_local_addr_len = sizeof(r_server_local_addr); - - char * socket_buffer = (char *) malloc (r_server_local_addr_len) ; - int ridden; - int written; - - - sleep(5); - - int i; - for ( i = 0; i < 5; i ++){ - - ridden = read (sockfd, socket_buffer,r_server_local_addr_len ); - if (ridden < 0){ - fprintf(stdout,"Errore durante la lettura\n"); - exit(-1); - } else { - fprintf(stdout,"Ho letto %d bytes\n",ridden); - } - } - - 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); - } - } - - - - - - memcpy (&r_server_local_addr,socket_buffer, r_server_local_addr_len); - - - char buff[INET_ADDRSTRLEN]; - short port; - - inet_ntop(AF_INET, &(r_server_local_addr.sin_addr), buff, INET_ADDRSTRLEN);// get ip - port = ntohs(r_server_local_addr.sin_port);// get port - - fprintf (stdout,"%s%c%hu\n",buff,':',port); - - - - exit(0); -} diff --git a/11.client-server-exam-database/daytimecli.o b/11.client-server-exam-database/daytimecli.o deleted file mode 100644 index 459d3bd92d315c1bb5e211a9ffc90de2fdf5f513..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4344 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 diff --git a/fun-corso-reti.o b/fun-corso-reti.o new file mode 100644 index 0000000000000000000000000000000000000000..5b8cdd92bfc60b55aa5c99c0ca0d4290513ed60e GIT binary patch literal 2944 zcmb_eQD_`h6upy;O&gnLEtW=7>iD5;(TuIF)z%=ZVeI>e3N32|h3)L_#0+LZc&mpBVaK7Yg09AL3Vk^jBHfeyos>MHb?{Z{FLTJQKgX@ZP=m z+;i`{^XARlT{NfP8qhS5qQUFX_aq9ilq>p`Y-L{@ocW@7xI?8xj?D;+I-YIHff zj`Zf$G^?6TZFJdOpBxVNw+swJI8v>wY2h<*mj~oC?yq9qnz_bqu-D90|GSoUol4xp z<_Y|-mO4mWrPf;S;`20F?d=Zl>le`%hT5!JX~W{v{oM_RS;K78=CpeIJdTCh?2w5i zP-|ufvzicoPxbHLB`(0!tTR{CpDpTv?Ux+a3hd%Az^SRJllsAIK6Hcd#c70nPd{cH zH;zsm2|4)kq1cBf<1(OKJPq1HS{vUvwEa46=sv`0keD>Ru`B)gz|_dLfebR@*d*a7 zH)-m{zwO08Bpl@{ntJgsdhttyqg>>3vA=mJK2eHU==<_0;Sorxf$Oo*|g;UAvzYJ^S4bYmJ$Bn z6imoq!X|SZhl&yY{tlV}Rz?2fXp@Os&t**L=TH-#xE^?9azGFirLOe?#;K;7pAq>7 zmHu_5-VyYPqAn-%_b7a&9GnpOhZSB{6ntL6WxmvJihP9zOKL-cAoC>utjJgCGXI7o z3N80v!l%(t_mpBfy)cw>dJ1q`8O(G0-8tE_}H^#7V&rr>aw`w~HGisej!90CY$0PCPHaOA(vKk=~fjy)#?j zA0SS3Wd2Q&OBdN@bw1ew|5ViZQ{?lz8SO~m7sNhX7V)o9Z&n{>LU*Fz`DJgyw*$v0 zfNxvHT)_>DW3RmQYV7618S+lV-hAMrcl0oPWS0Y{TySz1y;9z>VcvJ#Ut(~r+Nt{r>leJ8M8;3{r>m*^jV3^$w-UEuW1jNs_f zKN^(d37m2z{$2v7vm|jVfz$p-{4;^my2RIoe?@3om%e$)uO;wg{V%t`<@ZQ+lKdYO z{+M`=w**f2PqLq%6u#`Iz6IV;@O`5GZ(HDdMV$H^#Ubnen84}3hs5tB@Z^5#$RVLR XG^AvNA#wR#oKtXl&X*Kip7VbI38B}E literal 0 HcmV?d00001 diff --git a/test/test2 b/test/test2 new file mode 100755 index 0000000000000000000000000000000000000000..673113f150a01b7d52866197a84c9f9d695ab2a3 GIT binary patch literal 8543 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 +#include +#include +#include +#include +#include +#include + + +int main (int index, char** in_data){ + +char a [100]; +char b; +char c [100]; +char d [100]; +sprintf(d,"eeee"); +sprintf(a,"alfred "); +sscanf (a,"%s%s",c,d); +fprintf(stdout,"%s\n",c); +fprintf(stdout,"%s\n",d); + + + return 0; +} diff --git a/test/test2.c~ b/test/test2.c~ new file mode 100644 index 0000000..522e43e --- /dev/null +++ b/test/test2.c~ @@ -0,0 +1,24 @@ +#include +#include +#include +#include +#include +#include +#include + + +int main (int index, char** in_data){ + +char a [100]; +char b; +char c [100]; +char d [100]; +sprint(d,"eeee"); +sprintf(a,"alfred "); +sscanf (a,"%s%s",c,d); +fprintf(stdout,"%s\n",c); +fprintf(stdout,"%s\n",d); + + + return 0; +}