From a5f922ed6e777e221f841200bdf7fbbe49858f9b Mon Sep 17 00:00:00 2001 From: hugogogo Date: Sun, 29 Aug 2021 16:45:21 +0200 Subject: [PATCH] la communication fonctionne avec signal --- builds/client.o | Bin 117968 -> 117968 bytes builds/server.o | Bin 118504 -> 118744 bytes client | Bin 130328 -> 130328 bytes server | Bin 144232 -> 144336 bytes srcs/client.c | 28 +--------------------------- srcs/server.c | 41 ++++++++++++++++++++++++++--------------- test.txt | 4 ++++ 7 files changed, 31 insertions(+), 42 deletions(-) diff --git a/builds/client.o b/builds/client.o index 7debd998dddd76ac1c261cc529587152b6ab332c..be26caf32141e0599877a475619680e0211c1225 100644 GIT binary patch delta 245 zcmcaGll{U>_6-Y}nYb7>FJ?AoVpN)ZomD zfJhJsfKUvKbB-}GFbINpj1mxyIsCcB=|Em4P>g9}0#qmGWM4KJEl!x($qbB~`CtVR zLSW6@P|Xa&U@r6K$!z?ZjAfe_>-)3Hih6ShM;d-9HCX#}?NeLk%6ZJ3Y4%SII3hzg zazt(xG(Em%^R_6-Y}nRFO8FJ?AoVziljomD>ECYphPfoWn4e_|N}qs>_`CxAf!NHZ`> zfk+StfKUvKbB-}GFbINpj8YJdIsCcB=|Em4P>g9}0#qm0WM4KJEiRbZ$qbBK`CtVR zLSW52P|Xa&U@pt%$!z?Zj1`*~>-)3Hi+OVhM;d-9HCX#}?NeLk%6ZIOY4%SII3hzg zGD~tqZ00vTzGm}{hcjL<)=V!v#aPZLH~r-)MtjE9(=|^s+B02!IJxkV*!G6gi~)=Q Da=1I7 diff --git a/builds/server.o b/builds/server.o index f4f59f89bfe50bdea6aa26ba6de1aa7a52542588..2bfdfd030d297c9511ca53071007b8f9c11e4f8b 100644 GIT binary patch delta 13418 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 WSCxA^@}(R5v?7;Qq_TCdi2q+g%4&fC delta 13059 zcmZ`<33!uL+U;$@k`|SKrF!zixA(RWbDxLNjx##nW5Sj5CQ6)5dv1CPWsu2JJOC1!yB zk9fveIQOQ{Zn@KPipKH%o9!4tFO3T4$6Jk@^<(00>6zFoF}+D_vzVC1EKDkVDZWLl zM-0;EOlF`)lCzmo!|D^8Fj&qc@a)a6@^iE|<~X zxuN_dy!Aw~IFD!?#fR`PcKR1LkmXRgrZT(!y)KtQKjdF+%28b|olAag`Ok<*=htey zF29K#FF%s?cFq6PKZ&|rdadAJt#y*Ym$>}2x`BV0dM*FX|H1F5${W`OzN)L!9lo1H zGJ3>|_M#NNc((cv_tk`mNm3$4j^9N7ZABnnEVlMOt;z=&@M~~2U`6{Qt%2w)HX~b# zk5EKmop?}@UomW+LxeWg1B+GpX#;*1P6y$tJ*xb31MUrvgkzVh@}CSi4Yq?R972#R z;X*03=5LKxtlqkzYAg3^5U~kjh+~a*G7tU)j)GiGlS1~HoUQV+)-b=YO_gsn__dAn z2Sn)3DlyDXYO_)}6Pe@NH7xW`6ziCFd7^khd=9&zSS(JUs-YMv7Q%fqwR0%GnKf&R z%A3VzG4ojVEn=1sO;B+wV_ej;=CBcKEkq-cB`(3&h`rbpD&YpQR{Yeq!(c=kG0;$? zIT`&sM4Z(6Af++mbwOrhYF{4ir2CD9~xY{!95Dx2C>qc*?= z2#c)0z-@`4R-PW&pBe%BAt2%Jbe87Wj3R0=%NJoU;_PeHTr{&L>algR(Qh&EHfK7w z`BenVfLp@foPo~U3U(XtMMR|al35DwW58SBY{ANe;E|#db_WWA0G zvIJ1of}OSu?%PFj?5{oyzg={)e$-3)F2i;l0=LsP7G-2xTk}| z;gN8X9-~PHdcU{4O|M6eHkqu{sw~AhoAa>f(wpZ=o`+uMa-8lWYOpt;sq8Uuy>V$*))~ z4OS`wgqt_dP;iO?|2hGuTZ>L&E~2Dy)pWF>&zF(bhIzaIztkQ=s0}07`;`mZaN$5i zvZlk?maKnGSF8eql?G2+vYvn~Sy^7i3L30&2ugU_GzGt8zy+uv%q6#~Ez_F=cROm! zklv1-ze2tgM^Q{+eRV*2_{s3_cSNPlQaJA5x-7itc?WC19NAPY|4L=lP9Gs^Tlx?} zchD#c<&yQy7RBmgu&%&)ClfdUj}(1jOED2aDW;%8ihIB#M6&giK0T~9Jh-x#b#2&FJ$e?(H~ax|(_Xp;a>2ktm*`s1tG~=iOAht)WvkgDmPe{;pxbPGLYGk z+DyjVlcPCOswNoA66uv$ZOWhUF;?n+-jPFAdd!I}Y|gdKXh+-1P~5RmY)70SBUfUlxV z!V?P={IUT*i6~*Q0*-DRemBG0jpTlMm{%I)eee^Ow*yIDiip(uqq-aWu9fK!RO zxq2D)y{uzT1n;HiH+3cC#YBE;doC9h5`I??vt)(V!E+(HGt>-N-RbLfq)QQld?~h} zxI43{hbTq!{r4+Vy+PG^xb{3o_Yj@jKkFrBoe`n0J~3=I%0ED;2NUa&rOGv{&TS_| zdT^&L)@J7n>n~uZG4Bsikj4}{q9Tn6cZBFkmu+?{@^!h|nzz#S2lPTqy17xVfa-d-g4)@Ne#{J0x_36Ik|(R{<# z*9b``e?)aJRxTbXy_r{$9`WXA@WCc5dL!7I@pDir$=BwpN^~eeY8i+Sv*PsW z@3awMFP#0v(Abz!nAnde=GB_^SA%v8!G84eXMHXB)quC4g0Lt?RX>Jo3adZsl$EPk zZH=bw1Rr4@DgshmL|K2XlnV|j@??X&2`&!<57x`Q-h1jA;Awb0bdmtSWG&Ov7?tHHbDN^>8;M zwt{~UBX-mMYermy5MfrLd=S(ASwCW!f$xQLFe5gFM~a=W2h-)Bo>A$wG_t&ipk)0M z6_RyfkAltFkOnb?@Z>@TdkiOY;U2WO zLs_N2qlhmEJeNgeVM92FF2O^z?Hmr2E&1<^P z+8Czy!zWn{kxv%SjKz{XbChBYHOL-BCAl*k!$>tFoFiD(AN5J-X(NSPcqH6Quca>-@IA0cFtuqY9U<$XXXkl? z)fnPFI(bCzl9vtmNw^7%Jfz>py|kB}!{+LljxxzQfXHM%KU}#_G!p?hMl$S(eafLZ zXg+{T!LT*o1#0asNu+P(EwK;;`0^n!gAuBL;C$J?>|B`aGF(nMa@mVlx-vP z5tPxuI;y8t2P21Fh)OtGq{@33a0y(am`xjaN0Bvqih>_7SP#K3;cnWA9;|iE(G(#G zf2KDQ-6M5y6GTRFBz^&pm!Ss2_L5wvr>?%0){%E1NSM2he>TNnRCu|OTtA5BqdBEZ z;2X`-SCK!O9ht44ugvM~LK#_B^XFA9%+4EuD6M(nbd6zF3*jF_mvJZ>Lzj;)R5s>x z;6#_?LGV04@|(zffPHrmL8%=^=>s&4(`S_TjJ9h6F_t&@{tv72hynjH6{%yzko2_Y z6mZSJf7OdhJ!1xiPs93CAXR{@fZI2+{x)me0fa|+3CA!Q25>!4WXhI$@0 zSyoHEyqX)pmk3JuGd=M2icmMThM+>izvxvt%gAIo#DlEyGCg0+1~~xVgUs+*!J&?_<>A2Ibb4^To2Wf zd{TG6IXWKN~cYPnV<^8qI)wOdg!mD(j#P34Gc2JsNJ{qXrHHX`504r-1v zADIqBS!fk`|9eKca7`m?2E5bgh$ncd{R0uH9foH*o9xUmWoqsyClQ>^aP?6-owaDL z_g=GMr^wvoncepgJ%59M%=AMPQ?qvK$9?nbg!PC@vIDLeB!7;y8Px7a_6$~Q3qn%+ z9ubM{Ks7aMtlp{3F|iq*nXG(B-pT$fH_4qK)l2HW6vU+Y%Ud^G;#|`OZ2r6f>j_2Xx_Fyd^tH|b1 zUJtK?-Fn>UrME6ozJ18eWhshgv*CY1^=!Hv22VB%=OHtjS|bFrd09Q6mr>Khez@m| z%T`z2YOd%)^AZZmyNYsH- z`3_ocGgJ(!DJ<7M<-{DZcfzxPzBUCFY>wEWuqEu&iJFV`w+Ipz6)0W6Hu@Gq9uDt- zwUF9ibyUnl{zAroMQ>4?jk>f(8Evd@^}$2W@Vb`BLzLFyeYkSzc?{BW>FYy%4>)P~ zvf(GoO4NhE9HU<%lq*h(`)a<-vkLUjT5|b=ZVCCJXYolDvs3X>%4C$t*Vy!h;ytGPqxxUkGH{cZ55>C)7%5w(X7(v23$d*3N z%6$y}ZeS<}WcqRj=0!z{_9$M?C2N|VT&{Zm**v$xyMh5OuTaIE4LBKo!u*{<(F%Iz zw+K=@gX$IZ{AZ;2DS9K5!n*PYsry{M0^(+!y4=&z!$Bd8#Y+jYq;JD&2O-tg?lww z1xR1broN28YMSmv84KMV*Q)qujR4hp*t~6&kA!0l-zR!LtIYmxz|G)a!%%mkXblsZ zoT*redhe@ki4KU6Wj(JKHp_sQz`2%Al995O=d!DNm6P5E%QID#4>Zb;AV_PgrJl83 z1Lkm%&V8s_%T|bkwT@r8{+5T~>v(O-&^MFcHJikNO<2Ps(7&h zH$fR;-cKqwFiv;4o+SC()ruT6$i?tVxLh~-VFP{;e!~2Aspv`3+3lLEoSZjUzvzAU zU8DT}Q2ita>Ue$B{KB4+_=@y*eZttN_Y3(HBrjvX!<+ z1GN5M?*}_-F3!Bi6bINY&E>6<*XRIWDVxEul{vmUT_xAe$njZt3G=Qe-%zY%y)c+> zT%np9juoRj%{=DjAwp}>4%O1v5~LI|;+bhGl-b^MU>7pf3H^X!9&^7!P{KO~DeIv| zzAjWqc==RSZf0@}VjJOn-N@#M;1_&^`3#i4jXiP(0V&3#avRgmfMYwwdZcaVma-K^ z+ldWFL>9gW=MLKKM#>JpTycxu!NNJHV4?NTDJqpEMy7cXpv?tXprgj{N$~@ULDL-d zBR~FhkQ8gK9=~Q~oN(%_Ce8)BBVr= z!tt2iwm(7Ii=unN7X6#vkK*vyi{f6#SiN-q4yAg@hVJwo*~ z>?2f<^ha2#4H1>P+g$Zt78$C>NZ4QA(}G|smG{35BnI^z2gv;Y67BEd7yN^ zN^u8lir5ts5Pp^5VML`mY$8%isd8~HrJ6SpVXBUbmTGXcDfEBY1Pu?1c09JHzDDF< z8fmJKQgJt4eT}V<0Q)sYnT^nEtl6OBtXV7A$LaIPB!rJM#12HInl}Zhf28^n>_1XH zH3ea*ogxpgYvtFe?#)72sy;-e+Jz6`C#l-7 zPg0#a6=A8KKvb$Ld`LY-l|K@uDy|}QQue?p=6M&Qr&z=;Dx=_Sn<6%EI>Ke-FG5t7 zvJp>nJipgUwac9~wSV#m+hqpAr`ayQY9vRs%OSzB<`JuuvGa|JgPFSvlJU)Q{c!Oa@d^}Jsf}4^SUjnUlQG8kK`cr zPqb zr+R7!!cr|)>J_4IQ{@k8iL#+XZ?mDRI;mEgpjzo=wi1wff$itf3)Vv9UtqoW?nGD? zAML6P0;py&A3od{>1{r23P(;vfjd!pkt^4$JJrfH71dI0@TEfebNqLx4*OZDw;^Au O&59JcTxD`lH2i$v?K<2fzE0{BfF|(>5Yv5Kn9%&EgnGQyP&9o zMCX10OlOlyraL{9IG1p~hpffe&3mmo5EuCUBW4Zli3iw|%g|BA4YoqW0C!d_BW+6q z_`ElWZ`+3m?aBmrny+eRuvPHsqgRmXvjGMUvX+W+Hq}(ezE=0soSgv8mN2Si@ih;y zgiq9@Agwe3#FfeccbU8H8g-cg7L}mvtG|pMzEz)wbf5s>mMyY{`5SK1RSSUI{vXXX z_F@dLa;73RS^*M|2OWOmCFb%AP0>gdJHVtPlIKay3Zb#p0C$`b#(uhP(40DeGbbZ& z=LWZupz~E&}WO$IThrH zAFotUvMU5grAb_zRUMaTpH&^tKCkRe5e=_#hLC}Rkji@_6|Rc4w`wM)B-~^azBv`- xmWRhF_E5g*qneKuS)ZgWx2^|pm59YJ_#p!icwcN{KKi_Cn^=VXUh@`y`v(MQ@Rk4o delta 766 zcmYk2Ur3Wt7{=fCtbHz-|8gdZF(td}D?h13-B8L+X|iTZ-E!H?^$)TLu~tq=62g+m z4lyH3%A1HJ<&=j?Gp~ZEo23+lT9HZ=nADYjpzmxhJU8e3p67X=b2#0LG2M$X1MS3M zcQ%crP3^0{m~wR15O9oY+9vy0H|f=qt;q6qRx_IDC5v&BsRjT@mnWg_9H8la7#xu3 z*#&^eWc>Y>dk4s*h}dJ$eF=w6b5A(e8Tnd`1nB zF4qQ8hx*k{Nd6U2aUC^Ti!s1jteX)(viqfqMrw@*$lXrSUB)tPg^1J4Q$CAQLn^@3 zj<9^gev3%W830f71k+4gIUB8LM#-23aJ7KemG7k^wbk^i^NJ*I0q~kvr79X<`2b7U zV5I@23K>AZM=iKbebsG}PXYL531hqKJo?$PD;1^Ae1Pk==qmqIly zsAmpO3QE~lfW!k~haGx>3Oil99;H${z_2@-XGvZQk>Z>HH$72}{yx$n$<+WS4oBb4 zGJTc=onNbd9TaNmlb*7^XN_9pMw>3#t^94u>7VJJF>5Z|)5IPtn#s|*D+e`cI@jfp zpNITdC6j=b7Z2eF!dD*R5A|#L+#{SIq%~g1;{>NU9S}l8>Z;Jpi-v??%;G&Ek&yY% zm#TmzeC(AlD&(L#YT%E@@HHVmWi9!4M#%L>c%AtX+V)l@T;TKX#Jqm@nhDJ2cS53F z;b$j=TWXKEo=>77&KaTH&!R!*eVm A%m4rY diff --git a/server b/server index f96dbc6164fb625675423f70ceeedbf22d314c5e..8dd5758564c54ffa66254ce0d525f8375959d384 100755 GIT binary patch delta 23747 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 M6n0RnT}6!eKka)Q-2eap delta 23507 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 //for atoi int usage(void) { @@ -18,9 +17,8 @@ void send_char(int server_pid, char c) if ((c & mask) == 0) kill(server_pid, SIGUSR2); mask >>= 1; - usleep(300); + usleep(20); } - } void send_message(int server_pid, char *msg) @@ -31,30 +29,6 @@ void send_message(int server_pid, char *msg) msg++; } send_char(server_pid, *msg); - -// if (!ft_strcmp(msg, "SIGUSR1")) -// kill(server_pid, SIGUSR1); -// if (!ft_strcmp(msg, "SIGUSR2")) -// kill(server_pid, SIGUSR2); - -// int mask; -// mask = 1 << 6; -// char character; -// character = 'c'; -// ft_printf("%c %i\n", character, character, mask); -// while (mask != 0) -// { -// ft_putchar('\n'); -// ft_putnbrbase(character, "01"); -// ft_putchar('\n'); -// ft_putnbrbase(mask, "01"); -// ft_putchar('\n'); -// if ((character & mask) != 0) -// ft_putchar('1'); -// if ((character & mask) == 0) -// ft_putchar('0'); -// mask >>= 1; -// } } int main(int ac, char **av) diff --git a/srcs/server.c b/srcs/server.c index 1d02560..df91f0a 100644 --- a/srcs/server.c +++ b/srcs/server.c @@ -20,6 +20,22 @@ void init_message(void) message.text = ft_strdup(""); } +void concat_msg() +{ + if (message.count_bits == 7) + { + if (message.character == 0) + { + ft_printf("%s\n", message.text); + message.text = ft_strdup(""); + } + else + message.text = ft_strjoinfree(message.text, ft_strdup(&(message.character))); + message.count_bits = 0; + message.character = 0; + } +} + int main() { signal(SIGUSR1, sig_handler_1); @@ -27,25 +43,11 @@ int main() ft_putnbrendl((int)getpid()); init_message(); while (1) - { - if (message.count_bits == 7) - { - if (message.character == 0) - { - ft_printf("%s\n", message.text); - message.text = ft_strdup(""); - } - else - message.text = ft_strjoinfree(message.text, ft_strdup(&(message.character))); - message.count_bits = 0; - message.character = 0; - } - } + concat_msg(); return (0); } /* -** ** allowed functions : ** - write ** - signal @@ -61,6 +63,15 @@ int main() ** - usleep ** - exit ** +** +** cmm +** deii +** enlc +** ctlr +** iiio +** 0.0010 +** 10 +** ** you can only use two signals : ** - SIGUSR1 ** - SIGUSR2 diff --git a/test.txt b/test.txt index aba0ee2..f4d73a7 100644 --- a/test.txt +++ b/test.txt @@ -4,3 +4,7 @@ cnealin azelj aze . cnealin azelj aze . cnealin azelj aze cnealin azelj aze..... +21377 +cnealin azelj aze..... +cnealin azelj aze +salut heuuu