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