From e25d50713172728ba4a9508cb3efbb936b58a57a Mon Sep 17 00:00:00 2001
From: Gianluca <gianlucamastrolonardo10@gmail.com>
Date: Thu, 23 May 2024 22:17:25 +0200
Subject: [PATCH] finito

---
 Reti/Laboratorio/Assigment5/Calculator/client | Bin 16800 -> 16800 bytes
 .../Assigment5/Calculator/client.c            |   6 ++--
 Reti/Laboratorio/Assigment5/Calculator/server | Bin 16840 -> 16848 bytes
 .../Assigment5/Calculator/server.c            |  28 +++++++++++++++++-
 4 files changed, 31 insertions(+), 3 deletions(-)

diff --git a/Reti/Laboratorio/Assigment5/Calculator/client b/Reti/Laboratorio/Assigment5/Calculator/client
index 9370d342872f7b132d6304237f6d97e5426ea6a7..c4ff7f692ae0b5232f9826502fb0731db98b29f6 100755
GIT binary patch
delta 1017
zcmY*YO-vI}5Z<>1fl?_V4HQe+f*_GVQ$z)n0#R{MV>n<8o)9RZ2HH|uO!PppS(A0U
z@#jfAaIgm=L^+UbR3MRGBXTiv@nnp~1Z#r)2pUA<I&TYDU-~+kneS&hyAAqL(2s^<
zky@{%l%v<;BvcSrONY~1sT!Hl9+xSc?nKPfOUZ{vuGalYDd#MYH>qQl!q48yd5aWK
z<t8Thq9}@g5%?|3EdSIeP3^6YLP4xaHRys+<0ic7aRiE?sts8ddV*3}>U9)P;3`ic
zD{wwMt?xrV+>%y?eA1(|W<*~^IKgnHOMFN)#h$lH;QC15U$J6zFF3ON%rKcVwD<#L
zIf4PJL)vE?VI4Pnb6Fw!Miv21jv4_tMuq^gBTNp>1Mlkq)V3(vv1LIdGD45yBo=bZ
zkX7<4mHcadjumy;z#OAMX2<*U8W~W*K`nG24;l3Il{I{RUs~~pt={JL)C;NzrVF}$
zZU79Bz>z(bD2X=k0H>#?S{)I>qV5SW|2HmB`XU)n;0ED)G(6WEm||*`_;($N@E3K@
z;Tg01J2GV%G`I;*KI|tclT;^1<0JNSS3%B%IsrBgbt-f&LW%HKw@o3LfCM%`_BKYq
z#2`RwSYynh-_zJ)EI@;}-k4L`8WtW_UWSj~Wm$QCtZ-qyiOoyS&IPt7I@Ax1*=cH3
zYusS{3$d*KW$ZMbQ-8U~e5+v^oesv{$}~IOZI?Yx#^G&KuG3|6L+&nRsO%<&d>Y9t
z<W#r0oE;tZ279ZGX|i|Pn`~|y190Y=&F#c#rh~ZLq%#dI%5n>VFU#^B2#FBMt5LHe
z%QX;7u-BBQUx#WAWYo!+L=yJHErMHtM@$D$3;twEG1o82as~N?TgLz~0Jj~K8pxVY
zB_!UYPwd{Ms*Bge#7dUTIW=bTi)l@UbSXb43f16l%W34ovzBpEyHz-kP=nN7bUThd
otHHFjK&{CLYilxaskI8A-Bxqlzd!4U^=RCHDGV8qep&nJza+(@C;$Ke

delta 924
zcmYjQT}TvB6ux&>)7{l|D@E6}X?9H$b5|6>KU|2)#vY;`iZBQ^u-tysbXS5NRCKCw
z-CVj96a^An859I#p@O=r(Bez>RJ{ZV6;t6)sSlNSJ9oy+3x~t``M&d=Gt59Y9_Yr;
zld&mgLE4L1$TsXY7IAu5q}1VJyj67Q;f5zNw~+oM=UsX4@#d4&(PP4V(WhrOzLGqp
z&ro2sv?L%TkKOx2sVKh)E0f#n5^#j1WaVT;ASXowrU?v;YVB`IgSR3|P1Y4`X6*)l
zsTh>PWXcx7VbYjggTu<B>@%2KL&TDEs6$%RIA4jOL>Xp?a(tL6Q&(3gO?#<Td!m6n
zF_?Hamz86q;Ltc529Q%aL|udK@8`tOI$K<wTV_fp#ZZXx2c@Ull-F`xonjS8uWD&h
zZ?|-m1DatWCCW^RbF-3Z0CY=(K!Af1+qO~*()t$HbQq*Y5eOP*!eIe5u8q*OgfeCg
ztOWIq-L9=m03cIF#&)D~_GNO|p54*E4rNk88CHOb@>|Av8wyg??}9^|cd~43)V%2s
z-{AAIwi#%fU^>)?o0u4W>E9V3u<5loAYeoEXJ`;f1E0&K8b~ki#vjNCpP%+XCmz<m
zZsii0=QEQKv`$YUV&1tzKAKM46y{u20?KP+a}lb$*wWnA<~!}X&>;Al+I`;E1|iVo
z6<U2~y+V7S+3zJaj>3}89`{~sH&mAaBoXZWJf)4`3l=F2gRcNT2>$X9N{@i|lKYN5
zHUXl1h|vBdD|5TR7(*kOb?ml<7bw-ztOPF|%nx>*IGmZ8cK~Z-M>}A#Ugh?sZZRNp
zN>Z|N)H!2<Jqn57s^ErrrQVgFfD1@h$w4fV>5>VS>n;6)u~E5H)^Fr~nhED|n}&Fx
gf;YsIDo-u6c6o}8|No~EPr0$vp|^A@zdVn*zsie&AOHXW

diff --git a/Reti/Laboratorio/Assigment5/Calculator/client.c b/Reti/Laboratorio/Assigment5/Calculator/client.c
index 02a6abf..6a7bff6 100644
--- a/Reti/Laboratorio/Assigment5/Calculator/client.c
+++ b/Reti/Laboratorio/Assigment5/Calculator/client.c
@@ -97,9 +97,11 @@ int main(int argc, char *argv[]) {
     printf("Inserire il valore da voler inviare al server con il formato num "
            "num operator: ");
     scanf("%d %d %c", &num1, &num2, &operator);
-    if (valueToSend[0] == '\0') {
-      fprintf(stderr, "Impossibile inviare una riga vuota!");
+    if (num2 == 0 && operator== '/') {
+      fprintf(stderr, "Impossibile dividere per zero!");
     } else {
+      snprintf(valueToSend, sizeof(valueToSend), "%d %d %c", num1,
+               num2, operator);
       write(simpleSocket, valueToSend, strlen(valueToSend));
       read(simpleSocket, valueToReceive, sizeof(valueToReceive));
       printf("\n\nEcho: %s\n", valueToReceive);
diff --git a/Reti/Laboratorio/Assigment5/Calculator/server b/Reti/Laboratorio/Assigment5/Calculator/server
index ca77de42d76d51f4fb7d79f062bba3f5669284ca..a7cf889c46686a1c9befaca3fb4f851061b36c20 100755
GIT binary patch
delta 2143
zcmZuyeN0nV6o2=XVp}DzAkY?2TPA|ewo+sricECk!{BFJ%x1QV2(eD7LUmhQ0PWsp
zEmhf>#y^~nWQ$0a2o@F1#OjuT#u(<*Wm}dwvutf#CJj0fKe}`8YZ14-_MLOj*YBKj
z&&|7i9@6h2`|^mkW$IClb}Yvp?bw!|ESi=iS!zjw6k^fj@v@l52Nn?vNv<%-@(2en
ze>e5GXRGtgM@zap6bCje|7AF<;-iu$(5!f0c>}$T(8-SnV}hO>frvs!swssgl;38u
z13D9qDkE`E@&(iGVRSq5U6!DST}nOl<J+y&lfzW2<VYNQMxsdE@Lu8;h$POmIvmb=
zS5;AwqrSeXvbKh+d8f|luIAj%P1W2+=h`Yuz02|vx3Hpo-h7A6Vux8{915Nz&^ku9
zT7jSnE&<<XKdO;`v~?=ABiB*^ADz>QJC?w8;hO5UW;oRx`t-!)u9gFd9LIB)fv9{$
z2>4ZvglGdvn(vh-wD%O|&A7qdbBCTpqoViZK4j}eUqVhEMvLABL;1m8DTqoGxn8LY
zOsV5jsV~={_OKwn!6y2oeITY9$#39H-D#s{erqMw;!5-cRiY2EdP8j}dZjL;JI+xm
z<Z@iYI9$Vov|^QlT6;rRpfb%ipPEI#)Q{{eZHhL-FqS=zMr(SRf#=RsZODu&uXG(<
zeGFVU9YmZz;AUEhUdBmUs-e+Wv50OKVuI=EE65&bOfMoU;Y_-fv<1THpYfy(b{k$J
zX1Ha@Av#FRm_ZJJJ!2C25LRWF=5%8Y8XvxolgIJ~o??0Q6pWO&_5rJVfY$w-q5J`C
z%FJk7%<LzRqFwa+I~d#lC1VV&+&dup3!f@kvvRE)Fhn>d(Ga1h&$pij`6L?S{Z{lV
ze;)07`0r7^LC=uYy&j3Mm!22TklEch3#qX85EG}lw|RzM6r?>U`B)J?iGq{<8sTnm
zP?&~qvh)>d!Uw4f%PHrd`X84&@5=Ugs0@YDB?Rgl6yCZ(!5S&roh75Q3CAzSW8&%V
zm_?s5XENP`3um)1bq{Va?zi$$0^66+8Eo@B)rF4W3d64r3UBPE*fpZiaE(qzUe{g}
z{b{!`s)r6k^s0KhS(q0{R_5Y4_oGpdM2AXzjLnv=pdd6qMEbwuU5ybj^ykMr?>-xE
zS<H^-0u#?;<=&)6e=!=Qpqn<9{es-sxKWK|#Tq+>ZgOLX7?M&OGi<syk{E$cC`LMp
z9cVwZ7yD`7KB*5Ws}IjSCND*!tVH1x6vD2D>>v*c6Ng35pDNMwjq2+_MC0N=HV);l
zGv?sGildY+G~9x^I#*rwbfar?bzP+!m&RIGt#MoBM&~*gms117#%v2mG8MCDU{81+
zx$A%7X9W4H1JP(R@|DOxN8S~QMk|ni3gxC;vIe%8bYwkvaoqu(Cf&rgyV2+xI-%I3
zM^58^#JGd%!0)DE4QS1J(hgJ2llTuNz#?-4$$(2{M>2;WJ^GB18J7n|mZc;FUdtrX
z9yn(Cf#)Y@!_NFNQURCpSCPwLvRTPRSZ=dZpxw49Bn+K49eJJ6T1J~F1#N*I?*wW)
z#b_UFDbSG{%(kmQuY8OZvpa^2h3^V<20eaJlerXB%C+DO*^`UObmV15S1?))`7?Ef
zs~Dd`zun_yzbP^Q4N!^JZHPv#;h6PctkLZZp_$PmjCL@3fl|YDS_5z3v~y!%F?I_~
zg*xRhTC?e`NYY?=p^ltpePzN9v{~?QrJyY}&{<eUKx2;>{&k_v9l5#!!}cY7VBxG*
zf>Q|3wyN7>+ushRVtaBZCdK(&a28wDc`CV<JZLSpYvOa`)PdW@WrW|MfoUZc%?A@?
rCmhY%k}^^b$4ac~XLtUuC3ba_Np@)pm|j`PlTvV&+DQajOLPALg|jIL

delta 1663
zcmZuyZA@Eb6u#%SrMDeQftI$&R~Lbitu4KP-S`?vgv;DAFxiYII?%afX3>D~W79xb
ztw~o%z!M4ahk;~Hi8B$486bnoOga{4SR@-xw=m-miZg?OK=9*w-rGBtMemPu-gBPw
z@tphK_q{Vdxa@=O9U%1NePUcPa>}!0?78VOR>sGy%6LoymvIAP<_3iJfeRAT95H)K
zV}QSB=B`*=`VSj!WWKk!x2D&A>zAp~OW3J-2d1!6XT>b74SI1|W5s@*4NhRa)(y?f
zhGUBN3vD;tRwC=lw0Ksx3%g6SI7@nl;=7f|4;1;k5|tk(!P|H;t|{)VmgW<$y@AoV
zB6R69@UZ@{mg70VA-xsDdM)168*x@|-pO%5{sH1{it*=KQ;!=sPQ!hs`i6UY<2Z`B
zfDR!DrqJg?J3vCnY5YNlS=+L{G_7i!4LrvME}s8emZiW~{iKdcL2dR9svrfP+3<uT
z{xCUNgNT0w9p+>+i{;u3J|&576Q!WPA0=}Ztm1L=X_3KvYa{d0O7evTDM+;<3!jo1
z@Q;w}xX5HeF2}XS(;Cw)r9v`8BMU!cqeZM@u+-(BAvMN^n_&G}jfTHu`B+2&cy5w;
z7s|*L@Xu0cP$`~pAxwemc->NNi`9ATAbkx|;Cm`CqNI3mSITqn5w@r7fulH@;)dZ+
zG^L-1VLW3$1Z6mH&xTx#OU;LK=uOS!d)Ki(J+-QMU6v#MacafNM9+~RmP`K-OWKQv
zESo8g0gV15zzgd*o|fu;NyRCV4Rw2s=_xfs3S5)AEI=DK!E(1qFRU>R2RbR(r*MFv
zqDuVVQJ;iPNscxB51TPo{{PqvtT8t2AFDWH(`9)@$9i68yv`Hg54Sj_pswjj=KW@j
z9i$0jMRV&)mB`3~j;5JpzJ=eEO1gX%82@9dF`J0Ik4|(~!SPUfN_ICbgZ|4j2=!ed
zBRa9k-ttO9#-`-ED@eX?g-fBtZIhb!vo`ost(fQ7?t~{aCHd5s3Uk_f^yQLnS(4>W
z((jT!OZwMkS>8|jDxP%Y(y<$GSfLL`X+4j39M+6E%4=Zc)yGDf<s0tHa;*?b*}iF{
zqmqv%rws-$&zZ>=rr|zk8|ZP`c_eXOh~??kbOHCc4#FG;T$#`p8g$*@`Bev=_EbX}
zPJ5n*Tj&to@HN(pURLOgm;*23kVuzEffk2FGhHNPL5Jcq71-$eWA=z5r<pYVL~Ko*
zo#QI-R6!2>sXz(nD6-l!=qxAlc21~J>8NTaUMsLdF?F@Vvx<BfJ%v{L9V(T?Zja<x
zV2&F9DmD`OCRJl-R7GpmSzD9}ens{va!`?DOxmxi9848zF;)G@7;0At#STw0&pnRy
zMOL_?us35zkyV$gp?)~Tn?plI)sPgs1}kdz*FIf!M0AO+B3ygweu&?FfDhFb_XF*~
za*5l}r@s0=%q#UK&Z*V|osUhWZiApQ7jUrDYkaV0^FnB`v>JHPfMU7JSeO=LO55^!
oc{QZsP`TUi@RtxR_ZsRPv5>k@-rgFXUT9OLmtWkCizPY#0*-W1$^ZZW

diff --git a/Reti/Laboratorio/Assigment5/Calculator/server.c b/Reti/Laboratorio/Assigment5/Calculator/server.c
index 01e11ec..f3ed872 100644
--- a/Reti/Laboratorio/Assigment5/Calculator/server.c
+++ b/Reti/Laboratorio/Assigment5/Calculator/server.c
@@ -101,9 +101,35 @@ int main(int argc, char *argv[]) {
       memset(valueToRead, '\0', sizeof(valueToRead));
       memset(valueToSend, '\0', sizeof(valueToSend));
 
+      int num1;
+      int num2;
+      char operator;
+      float result;
+
       // Leggo il valore ricevuto dal client e gli restituisco la lunghezza
       read(simpleChildSocket, valueToRead, sizeof(valueToRead));
-      snprintf(valueToSend, sizeof(valueToSend), "%zu", strlen(valueToRead));
+      sscanf(valueToRead, "%d %d %c", &num1, &num2, &operator);
+      printf("%d %d %c\n", num1, num2, operator);
+
+      switch (operator) {
+      case '+':
+        result = num1 + num2;
+        break;
+      case '-':
+        result = num1 - num2;
+        break;
+      case '/':
+        result = (float)num1 / (float)num2;
+        break;
+      case '*':
+        result = num1 * num2;
+        break;
+      default:
+        fprintf(stderr, "Errore, operatore non valido");
+        exit(1);
+      }
+
+      snprintf(valueToSend, sizeof(valueToSend), "%f", result);
       write(simpleChildSocket, valueToSend, sizeof(valueToSend));
     }
 
-- 
GitLab