From 2f20425be76f4c1dbb5dd746067d387f991b6850 Mon Sep 17 00:00:00 2001 From: Michal Starski Date: Mon, 26 Nov 2018 22:45:13 +0100 Subject: [PATCH 1/9] added testing files --- .gitignore | 2 ++ assets/test.jpg | Bin 0 -> 35390 bytes avClient | Bin 0 -> 8932 bytes avServer | Bin 0 -> 8964 bytes avatarClient.c | 50 ++++++++++++++++++++++++++++++++++++++ avatarServer.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++ package.jpg | 0 7 files changed, 114 insertions(+) create mode 100755 assets/test.jpg create mode 100755 avClient create mode 100755 avServer create mode 100644 avatarClient.c create mode 100644 avatarServer.c create mode 100755 package.jpg diff --git a/.gitignore b/.gitignore index 254defd..0b1b44f 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ server +.vscode +.DS_Store diff --git a/assets/test.jpg b/assets/test.jpg new file mode 100755 index 0000000000000000000000000000000000000000..ffaa9afa9f83062c47c8e1184eedb242c7d0519c GIT binary patch literal 35390 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 literal 0 HcmV?d00001 diff --git a/avClient b/avClient new file mode 100755 index 0000000000000000000000000000000000000000..323c58ae3fec164ac4fbb9c5f2d15b4bfbb83a14 GIT binary patch literal 8932 zcmeHNU1%It6uz6bHcfw$zGy_nZ6#8FNK;Ws!9Y^GI?=VZO$xQv-fng$*=_cZ*-6?y z2q|{KVY`qQMM0rHC?bLZQ%H*mwMr8~toEsj_+l-)(1M5$)vEFP?%dhzPK)@YFLU7D zbG~!${pQTMcd|40=ECpS{#q$SXqgZbO+tuPl(rQ@6h#=85O<;&C{ph1dpfc&vio^@ z8zs~TZ;8lr2_2;zjO-n3?4riEHTs0ch)p0IRoFvH+dN{^a>dU#wFWnXrj@)I2=Q{) zbnE3}q8>_Fu*Zf9HJ6`nW}VCTgzn*CZ$Pu=yG=V>KAAMrdDDW=&-bh5^KOAyhw3ui z6kohxTdC|wjlVH}NlX~;H>%r->!pDk4N{I}52vyTnaU356mI03)_k0E3bCKVZEfN#xLTP83#-V^4(#RJe% zj^w-?)9vSL)A2RyF~oj8ES;K2nU4KaeC?WVryfCE&&T^+TVtz#uA==ro{enp_nwKc zFK@t<%X$*Xqw=b}LTtoy+eJGp1n;F8x*OV)-mnmF09=A*Khm_Lv~3UqOHV{W!1mQB zUhFWHurEt}9^96t`e*Rmu>@-txx*+NyLqf&ZBD0#HYbjz6Tp8Gi;s zOR*rHfujZ6%ye$+L|myMbb{QELjL9rZayE-nE47M$Uu;RAOk@Lf(!&1_zj2Dk(YLjTZx2yYwsGupPWelp zRrn&PcSWBWc{Zhf!h z(KU7)WIQ=4N5*1SLhQ2ICVP2krw+;G5YCOUEiqBSeuk3Jq_En3BZsktA>a?gA5Z5B zCc!2GcbkK-3ov753Z_le4V259S=zm@^EmFdhlvaz%Z!iH-U+*)wor)n64_QflP5X| zbl6JSyp|^+iT@dBl9{A5kC^c>+r*iCjNxy{#8O$&!OfCoVv6V26wjc$HN;&#cZ1}1 zh24D>>=~*37HFDEI#Ji-J|8xGc$W{q;KR~~M|_xDY4z6|^Wm3$m>W>_{ds@bNK^k$ z!83E7CpV+4LgD#2&w+V%s?Vx>xo`Au$AodpesjL1%6G%+Qfs8aUkE7>-J8A*E#=w1`~s``fn^lR?#1P6k50 z$c1jcNQ~7|Df8AyZ@#MX`TH`+JDL6O| z&e-ilsui|ns*OW!J#i!KITycht`Q_WexiLOpKDJgd)xa)Q+?o+yO21J%KIOF^u`|> zAAL<+{^pma8>b(HE`k(763cH_iC9g4>D!?PfDziNti$~2htGMfkai-mj&o?Z@Gbrf zgyzPA@$4GSTjp@v<~EEg*^5Sy`;h2AyvB{^{hBjgfdmlYrj=0^lMLF1v2cZuTabs zK1WWwnZjux{yfL*!bw1T#=hjNh9kT1CFm#s*Td7*P(T8!0IzvI+u`tN=u^@ zbh5H<&1fy^?=F` zs{DDCzo7C%$gycktM35l-c@OBKsi20W%+x|VUVwh*NDJ;Xvn%X&_ z*e$Z(;e-7x*589+U9QsQy}E4EWv4DT>oTUxr*yebm$&FHPzMnRA`nC%h(Hj5AOb-I zf(Qf=2qF+fAc#N^fgl3^V+2;LZF!dNS9D2UUB?qcGBG$L2S(z#KJi2@Jl@4iJ9SAe zd0c@rj4=nN8A?LqBG=-x2NuZTLG)=RMl2I|^KnjN z&2T)K7OgxyStzda0EprNs+&VRFm%sBcpTV_0}rsr-4A2x>MmFxFLm*3 z>A%=Ta0@?w9i&=^y4|PtP@TrzkKTrIx01VwyzS#|9B<2bo5kHG?gsI;#=H&v7YitR AC;$Ke literal 0 HcmV?d00001 diff --git a/avatarClient.c b/avatarClient.c new file mode 100644 index 0000000..3ebb80c --- /dev/null +++ b/avatarClient.c @@ -0,0 +1,50 @@ +// Client side C/C++ program to demonstrate Socket programming +#include +#include +#include +#include +#include +#include +#include +#define PORT 8080 + +int main(int argc, char const *argv[]) +{ + struct sockaddr_in address; + int sock = 0, message_recieved; + struct sockaddr_in serv_addr; + char buffer[1024]; + if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) + { + printf("\n Socket creation error \n"); + return -1; + } + + memset(&serv_addr, '0', sizeof(serv_addr)); + + serv_addr.sin_family = AF_INET; + serv_addr.sin_port = htons(PORT); + + if (connect(sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) + { + printf("\nConnection Failed \n"); + return -1; + } + while (1) + { + message_recieved = recv(sock, buffer, sizeof(buffer), 0); + if (strcmp(buffer, "over") == 0) + { + break; + } + else + { + int av_open = open("package.jpg", O_CREAT | O_RDWR); + int av_write = write(av_open, buffer, sizeof(buffer)); + int av_close = close(av_open); + } + printf("%s", "Received"); + } + + return 0; +} diff --git a/avatarServer.c b/avatarServer.c new file mode 100644 index 0000000..87270f6 --- /dev/null +++ b/avatarServer.c @@ -0,0 +1,62 @@ +#include +#include +#include +#include +#include +#include +#include + +#define PORT 8080 + +int main(int argc, char const *argv[]) +{ + int server_fd, new_socket, read_avatar; + struct sockaddr_in address; + int opt = 1; + int addrlen = sizeof(address); + char buffer[1024]; + char *overMessage = "over"; + + // Creating socket file descriptor + if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0) + { + perror("socket failed"); + exit(EXIT_FAILURE); + } + + address.sin_family = AF_INET; + address.sin_addr.s_addr = INADDR_ANY; + address.sin_port = htons(PORT); + + // Forcefully attaching socket to the port 8080 + if (bind(server_fd, (struct sockaddr *)&address, + sizeof(address)) < 0) + { + perror("bind failed"); + exit(EXIT_FAILURE); + } + if (listen(server_fd, 3) < 0) + { + perror("listen"); + exit(EXIT_FAILURE); + } + if ((new_socket = accept(server_fd, (struct sockaddr *)&address, + (socklen_t *)&addrlen)) < 0) + { + perror("accept"); + exit(EXIT_FAILURE); + } + + int avatar_fd = open("assets/test.jpg", O_RDONLY); + if (avatar_fd < 0) + { + return -1; + } + while ((read_avatar = read(avatar_fd, buffer, sizeof(buffer))) > 0) + { + printf("%d\n", read_avatar); + send(new_socket, buffer, sizeof(buffer), 0); + } + send(new_socket, overMessage, sizeof(overMessage), 0); + return 0; +} diff --git a/package.jpg b/package.jpg new file mode 100755 index 0000000..e69de29 From ba56ecf9108168a220801df0205e71509a6a5378 Mon Sep 17 00:00:00 2001 From: Michal Starski Date: Mon, 26 Nov 2018 22:50:28 +0100 Subject: [PATCH 2/9] checkpoint --- avClient | Bin 8932 -> 8980 bytes avServer | Bin 8964 -> 8964 bytes avatarClient.c | 7 +++++++ avatarServer.c | 4 +++- package.jpg | Bin 0 -> 1024 bytes 5 files changed, 10 insertions(+), 1 deletion(-) diff --git a/avClient b/avClient index 323c58ae3fec164ac4fbb9c5f2d15b4bfbb83a14..ddb2e62069d09fab1a8e953f626e166ec0aaae03 100755 GIT binary patch delta 1373 zcmZ8hZD>T z+QO$P*0HJ|Vgs&Ur5gUwwM|;Um%7(UJ-o}^DAn<}dy{LCn~%9S21XHFR2XXmQakl{ zlmKI>#mpdMBith|Lwd;5=|-vQvxSKAmAJc}`w0Dg3Uy zZDBp~=OKR;9-pXpG30q&#q+gGq(Aum+O~8nwz92jZ%d_PZgklz)5da7DVXQ>G=vJX5{zPd zY9>>lySS_z9Ec?}vo~q#36^8VdjFQ* zxE4=oCTUxs=}Ap^RPdw`OPG7fvmKhD^&cYM1D+CNB5e<8rqLfyk~RSCYa?cAEXSvn zmYNZI56~K^=hcBGT{A@*XYPlXU<9 delta 1149 zcmZ8gT}V@582-+F&~o#*y2zi@Z6y>+%>K~Uav6(b&D1P1Gqr3sv+0`CZVHt=(cw6n zd=*|4*hLW*G;kM7n)HV&DAGIaB9KHjDCoiq!(zSfw{szWZ13~D&-;AudB5{>@93f< zIAaLu2;m4JX(|Y?LL&G1l7%_yiP@R(^*i%iYh2- zn3`12xsCLTs)p0ieDxl#me#5BI6d{Kt*S*89akSPje>d3NQeax$H|6&mWdF!E^(R( z8KqiHA#5+z=4pR}zGb9tGi}i9$a)!Ga&oJ-r%#q1mH+%W@P`I9Wn74U($s892VXku z--*3gzlm#Ex6`Omm&;XBtIpE@1CB3=uUC`FTPuVQYy*=Ju+_r=Arha2VodxDMO>2j z3|OKX#7S%>1RQfyIPELUq_0)d8$pVWfyXJuoU({ay8n>n?*vH<0*jx6-P4YFReQ|w ztuQDbisGdOnH2?TT4w&Z1zcO6r`9G4Z&798ipA6q9ndxy=-`7XjugSQ+QbE z4wMpga9dIXfktF@s{~muqF>%1$fs9?@>xk70xvJZO92+-!r+Gi4I$^>$JLUk`A&K3VjS&}e2!StWE$Ou=mK6Uf5I znvjhnb0Zr=)`#o?vLR%{w3yGQH~8H&#BbH(x3L#w{72|KZ>`oSuXUz^*$SE!EKzX3 zf_4RuDR@f3W<+=q@AA~H)oBdo>_)0F_BME2o*tK<1c|TAU~lR6y1J0tfqQ)&UH*2= z1ju}@wm#&wzYd(Sx{6D)RTr~gy diff --git a/avServer b/avServer index c4ec5ec78a853c84121eec3bc8678e1027bb06e0..f53db6f9bfeead0f688dccd09275a270e5b9576c 100755 GIT binary patch delta 891 zcmZ8fO=uHA6rNop!I)$d&?rbvqpY=pKapUqP-8uW6?%$zQ#7_~h)4`1-qfZwBi*hm z8>jvpJm{%K6rv%Z(A0wkEeN%m9{f2d6kIF{dXRvJ^}XGphy(k*_r7`Wo40SKlB%T4 zH(}x@L?DEiA^@)Hmt@!sy5wP(A|{Iq$#9FampR*FBfzF5H}^Pa(`*6Q8fO*G*6K0w zq!{XLomu)gx#z<8Q1^CmOYRUeJ^KYxpY!y1*(twwlj$MkDR%Mpmc&3h;~ zujmcOp?6U^1<4wH1@6BsZbkhgEBZTK{dKN>j~j&`ivQN=9jJxI*Rw}~r0|t}4{X?n zL(?0x?#49y%nX5fYQN%hiqZHCwBE!MH97%kP2%u0I>rtJqr+tgUeZs%gM)M#(;Y(5 z0}t_NeT||YYb(7A8odac5``-!y5lP&vv_kSURcl^k=EMsC{);T#lfo%jyX8)AP&x! zuRCZWM&%n$FySCh5-#27zyb6hwdD@h4p#e4=kh~7axPaasd;X4`K*s*1_#wbi5nGC zGR2}=D()_+#nP^`g)EVQV-KXw0etKUkjAgd7Nul*iNEO|+_t$D`TO;A8{xK-+a25{ lxIM_NBC(%RSG^oMFFon>3cm72{1sSb7LG;XsmEjQgumvl4}$;z delta 821 zcmZ8fL1+^}6rGKUu{G%?2aB|{8gc8b5|r8=N=(5xhuoy12XRXcVkjlLi->4Tu#2q2 zYSJ;{&4M6%C{h{<6&eLC)`Fv~D5tk>GRJzM2S} z55&Zi#VY?Zlqr+UF!DC^5JfzP?!rg@+A;q^wTlO6Y@DHHm z&jsRj@(0mWp9kC9Yj$lF(}JjX)6EZh1U9yWDp+fLJK8<%!oYKJ+P3DP{$3G6Ebqbv zUMAOB4I7|rX#s6TP}i)lP(p!$hfp$Kpe$N}#VKo}Y;=nbZP?a*m{ct|GQ#|t7FY2Y z&b{*R@2I;=Ldz>zLWDK}Nuf>pSn%kEA92Y*fTtJ9#8CpOPWl4QvL$E C()l0& diff --git a/avatarClient.c b/avatarClient.c index 3ebb80c..a5bdcdf 100644 --- a/avatarClient.c +++ b/avatarClient.c @@ -25,6 +25,13 @@ int main(int argc, char const *argv[]) serv_addr.sin_family = AF_INET; serv_addr.sin_port = htons(PORT); + // Convert IPv4 and IPv6 addresses from text to binary form + if (inet_pton(AF_INET, "127.0.0.1", &serv_addr.sin_addr) <= 0) + { + printf("\nInvalid address/ Address not supported \n"); + return -1; + } + if (connect(sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) { printf("\nConnection Failed \n"); diff --git a/avatarServer.c b/avatarServer.c index 87270f6..86b11bd 100644 --- a/avatarServer.c +++ b/avatarServer.c @@ -35,18 +35,20 @@ int main(int argc, char const *argv[]) perror("bind failed"); exit(EXIT_FAILURE); } + printf("bind\n"); if (listen(server_fd, 3) < 0) { perror("listen"); exit(EXIT_FAILURE); } + printf("listening\n"); if ((new_socket = accept(server_fd, (struct sockaddr *)&address, (socklen_t *)&addrlen)) < 0) { perror("accept"); exit(EXIT_FAILURE); } - + printf("accepted\n"); int avatar_fd = open("assets/test.jpg", O_RDONLY); if (avatar_fd < 0) { diff --git a/package.jpg b/package.jpg index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..099f667c5f04f703923eb13b9aac8dc18b6d79dc 100755 GIT binary patch literal 1024 zcmZ3~rNOX>dYJkDg+GrMb!p$R*+4~8sp&#mn8p16;)wM1O`_5c^Z#ojGIXvF1z!UI DQ( Date: Mon, 26 Nov 2018 23:14:11 +0100 Subject: [PATCH 3/9] lseek - not working --- avClient | Bin 8980 -> 9020 bytes avatarClient.c | 1 + 2 files changed, 1 insertion(+) diff --git a/avClient b/avClient index ddb2e62069d09fab1a8e953f626e166ec0aaae03..077bc902ab3b55e4cebd8919ce598a01a5514f9c 100755 GIT binary patch delta 1260 zcmZ8hYeOA8JB^78YL0#2Z%XpD_DXAlnaP{ga~B`<@*^{NTLL^FHr+pYxrw@2op#EXT7H z?$;6`5JD7 zhEW3XzY%OP5=b4IryR_7vGYWIf366n&k@@ML_g z$etlz0FohJj9W$&%Rl0tFE^-U?xLWYq!-PzY5&$sHkZu!>kB0 zhpqHBax3uq+S1BkPdR1{j?!v7*6fhoaa1(eh=;Bl61Dya*djju2zuBUix={&v8Bmrs*{NL)4k98n#dR*>p)D{{j8w BgNXnD delta 1195 zcmZ8gT}YEr7(U;A%yRSF%*+yPTM3G!j+87he**a~L>m$bDGD~xWSecHtc#r4%8xmm z9P6f=T}1dtjI@}b_6w5qqf!^$6oePsO@u@k2J3y#ca+$H^S;mfyytz+`Of*?h5GUO z&}xQBM~FZOX;guMVbYC#KVx*JD{P%Y5+}6^)y4>CZ*n$52Z1dXm9;+37SlCc%UNl6 ztywiKq|x`PCP7bg)hC1&YE$P3>C~aF6f)_gy3#xWYhxxtO2OlCvSFIcgn$(BS_lbK zt>y?+TeUe_1H^~MZ2M`8roixRBk#gmX8AAKb8!311}UH+O@+#&qbr)mjBF4{1%X1C z1|~Q=X!xB%f2Qp@;L{Ki#hvEy3asl50qwe)>U1U5CBVx5h3!OQXp4x!qmY(@Rg=I* zNGt{1vi}_1kNp(_@q=%lXbct7x{G0HVgD;gf4|JN8n4S@>! ztbr0?2DmWyg6M*5?gGAtNu#ixH+ehpH~5{4-3fD#W%Z9{~q< z<7TPbkc!*ja+FU5js)0+Ndf%_Tp!pg16>m$uh2yiKtw zEs_5aN)q{xn4MsDirE=vA2SM#Zs?RE^P+eUWNRcUm2GhsW+EA>ytv*0j6&>`ufI;68Vc z)7yp7If&f$&Z~%90DD}Wy-H07MqYQPqYrc45M6Wkc Date: Mon, 26 Nov 2018 23:27:19 +0100 Subject: [PATCH 4/9] checkpoint --- avClient | Bin 9020 -> 8940 bytes avatarClient.c | 7 +++---- package.jpg | Bin 1024 -> 0 bytes 3 files changed, 3 insertions(+), 4 deletions(-) mode change 100755 => 100644 package.jpg diff --git a/avClient b/avClient index 077bc902ab3b55e4cebd8919ce598a01a5514f9c..d926c9e2ae55edd0333fd05ed9710fce27a66822 100755 GIT binary patch delta 1259 zcmZ8hU1$?o6u$Y>s%a;w+g&A!O_sR+p$+&G|D)1!m7*z&AhHrAJJnj6#5DNxAhGI5 zuG47hEmD6T%CZm3+J{27kQTe`>SA}LyHr7N1@~c}5>Sv8MerehXJ(4f3v=!{-#OXZpLhkv4|Z4E9&m~Z-=)~W1`zkkQHRew$nRhp&1LEl3hR}iWz&> zLL>4C(4vKM3oS~&{hn>U{L6koPT6bZD#vnLRJJ&Lwrbho*lK@emp?nU`1=t4yq>WJ z?9|aBJRUz|sLYxJjP*;GbD7O8LoT1|4e+meS{BMf&J~_>JKVXK<6+<3;@iDn=DMD^jHqI)%{FX5ICJL%QATvOb_f zyZ^CLx%7c4`LE&T`RzK;L00-7(UaN~oV0{C0Ihrl;5c#d{D$+`dA{-a2u(6dRriVs zG4>PUn#Cj+!~M|2-&|;YP)awE`l#_Ad+TK5i)96_YkgV3{L+L|H*&acByjNn#lJ@| z^>p3pX^GiWY*tUbU?{(xDNoJlV>AvIk4ip^VrDFdNwMTJMb?h2DASF%!}aO`YD=HT^@AVy z<|jhSAy(1wc_M^#-t{|u1VwGzx3@~R=b4SCIw1w-C2 zWG`fMe(45myS}XigL1HDaosoIEI&nOC&HxtL0Xgiwx?H y&)xow{(UA4z+4As*+=9p{{e5;EHoz<2e!)Z0u8b^u*Yl7{dr>fKF~DB&z|!D delta 1428 zcmZ8hZ)_7~7=PQ|;h%21bxJ_Dxm`(3F+^$RaEj=ZbUES#hA|-v1W3Knx~*;6W@2Je z207j3xKQ#=;|CLr?gPpamH;})I_4znAcVj^s0_cLiD?rtjh{%2*5C8qp=6ib^ZcIQ z^Sr$RsAP^c_q-_;INuQvVI=%yc(Er*)f-$;G^`7P}z6QSRecjW*TYVj#{k+fD>{0lzZ?pGhAOG6-k~#&E zYCB^a;i;pwxWg)Ajqu|^#!hirYQyq~+$@I?H=pQxjPI7hjh}UVwSD60uC3qPF5SKR zN8kuANL}8lpI?=>H?>3HVF;|pO+sPyY(!pI#dp>{w7MWMHcdNSpeaO_dM(*2@u9ls z@_k@UW9F|~?dUzG*z1ti>@7cnonqxMT*CzvpcWAYj*Uf3v`l; zwCgr=&MZ!#uGcJS=J`*7%u|PBD zvH3WPsi)&^PjRQGk3m1!(=jMiT0n~JsTr$C$I;A%@*A$i{bTKLBzFBTkr(G0BaK_= zzJi-gGfc~zk6h90^EZ%j^vdh7O0$c^nBST9H0@z`HbJudxVw)blg5WInBm_bXT8pj zw?WMc**{%T(>O=c`69XUGV+&1{-4N_Su%@Llyq|A$T<*WJWSPTFs3mHh;6t2A@-l~P(gfGNd z7;NP?bQ-5`pz<@J5TPYP&l6fC6y>Xw$dfeL$}x&*D3v3Gz94jnZ&3zXQX_hXr4Pgg z4;<8=eK&oOg|cjy9@7&e`aAqvrL~@Z1EfiJKfj~Az`NzT)^qL$KkNEM*DsOhs~fkT zjW>=dQXsf?50~2e^Fyhu&I&9O4s`E}rIJZKmZNYZ!bDQf?MvrUNg}#H3}tnFkb-Um z!}@Sm7quFqR9Y8hJAu=gL^3x(b-NK|^wdYJkDg+GrMb!p$R*+4~8sp&#mn8p16;)wM1O`_5c^Z#ojGIXvF1z!UI DQ( Date: Tue, 27 Nov 2018 00:52:46 +0100 Subject: [PATCH 5/9] working image coping mechanism --- avClient | Bin 8940 -> 8988 bytes avatarClient.c | 16 ++++++++++++---- package.jpg | Bin 0 -> 35840 bytes 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/avClient b/avClient index d926c9e2ae55edd0333fd05ed9710fce27a66822..3d2f0afcc85adcf8f73827bdfc6e9505742301a8 100755 GIT binary patch delta 1512 zcmZ8hZ)j6j6hHYlwMqL@$F$OQCYb@J;2LYEuB&!}PN8E+O_NufHSG(@YyE>; zrt(j8!F`ro84rSAhU>LW96`5KNsvUJBVzV zWapj~Y#F;@r z$8zp<&b*ghcegIALV@`x@D4tHE;ttP9DR+o`R2Wma|4XiPUolxkvlD>XSJIpeeZ5m zku~(+UKERmXF;;w#%bAVe1z;M6q?ap)o$s#CzQHXWW-&a)?Hz9a;`VQDr@6h$?LBVqqXlTOY6cK| z_)#&epwIOn$NsCRZmCBwa}6u)*+l39p*BKi2t^5=n!j^ zx;LbvvEJxzW!0yt-4I;~tqCPC5RWF+KqfJHJfLcO)b##+lV1i>$wcn}sDnxx!Wr16 z#FWIK5@%NlfvH;ep>j4!aouIx$rO+ z^&gYmm7%Inm^;vu?T#hYi~>1G*H$)lcB?6+pMrH1>`5myKGlR#qF>QEQ<}=BWhDBP zzKo(#avMgebfRDDrl

v=SR6ybEzgjrH1jJrrr_SYHa~XgE6Azky}mJY7i|`Nga( z_!fOARs@@~+mOLi!=F7qE{W-w=FTTeVyz@TP!iLHp1c05S7Rr9!yW`1@Qb)4REHnA oEuq%sqFbU*FFQ1+H=---=g`tc@qNiSzVAR+XIG*>jwjB?|J8%o%m4rY delta 1338 zcmZ8gT}TvB6u$e1maDUxp|qLq#`Z&hN?G=!ZbCAd)LH}*$Ykr3rn|1|SQ^A?HR7~x ztz8kR9wK^D9|RRPN&7J}!axJThkEIucA=o37s-e1oS7@dUUts;&UeoF?wvDxAC`YR z7M{;=nF-MmLY#Uquw3T8&n4;MG>tu?kt9qDbfxKYjFlKWN4tP^a$0RWW1VyX*a%~J z#zv@3Kdf6z-|J85%rwWaSLdQt2CFWWdJKp4-}H3IaL6_Y#Y=gF3Na$VdVGm2N|vHG;A!=yUg^R@nl9a z6efefb`(MJTp*sc-i4b@>K$5 z;6oGhP^Y|9LJ{!rHt*Er6tZyi38+!zUI?Nykie76CIGQAP2)b~r<36TlTQFayA1p! z?zO5ck3(~C3T?C-lFDpAnHq&CCcw0`xdBar>IC^<>IfbyxP}j&UFHuiC~^LJ-G@@}t=MfDdYC`k~(KSQ^h&&%>Q8i5A#NLchZ>8X5P;HPUiP> z^e4A@LI_>#X mvY*KMH>TAAsiUD^?YX(^73(^h>fqhmE(jMIymjzp+4>7GYKTez diff --git a/avatarClient.c b/avatarClient.c index 734b7e7..1414c8c 100644 --- a/avatarClient.c +++ b/avatarClient.c @@ -14,6 +14,9 @@ int main(int argc, char const *argv[]) int sock = 0, message_recieved; struct sockaddr_in serv_addr; char buffer[1024]; + + FILE *avatar; + if ((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0) { printf("\n Socket creation error \n"); @@ -37,20 +40,25 @@ int main(int argc, char const *argv[]) printf("\nConnection Failed \n"); return -1; } + avatar = fopen("package.jpg", "a+"); + if (avatar == NULL) + { + printf("Nie udalo się otworzyć pliku"); + return -1; + } while (1) { message_recieved = recv(sock, buffer, sizeof(buffer), 0); - printf("%s\n", buffer); if (strcmp(buffer, "over") == 0) { + fclose(avatar); break; } else { - int av_open = open("package.jpg", O_CREAT | O_APPEND, 0644); - int av_write = write(av_open, buffer, sizeof(buffer)); + fwrite(buffer, sizeof(char), sizeof(buffer), avatar); } - // printf("%s", "Received"); + printf("%s", "Received"); } return 0; diff --git a/package.jpg b/package.jpg index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..476d1b72bca0741de2ae1568bd4f74c7fdd89433 100644 GIT binary patch literal 35840 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

Jz-UgM-bBL_<(_>tu0@AFc{gquF4KMK5xh4e?6 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 Date: Tue, 27 Nov 2018 14:17:44 +0100 Subject: [PATCH 6/9] added random asset pickerto avServer --- .gitignore | 1 + assets/test1.jpg | Bin 0 -> 53873 bytes assets/test2.jpg | Bin 0 -> 53973 bytes avServer | Bin 8964 -> 9188 bytes avatarServer.c | 8 +++++++- 5 files changed, 8 insertions(+), 1 deletion(-) create mode 100755 assets/test1.jpg create mode 100644 assets/test2.jpg diff --git a/.gitignore b/.gitignore index 0b1b44f..3c354f9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ server .vscode .DS_Store +package.jpg diff --git a/assets/test1.jpg b/assets/test1.jpg new file mode 100755 index 0000000000000000000000000000000000000000..ac1f05ef8693d9817261f9e42ecfe738a4486373 GIT binary patch literal 53873 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 b_D_H%FEALOrB>I9j-ByycHG~7^8ZZ$DeQwG literal 0 HcmV?d00001 diff --git a/avServer b/avServer index f53db6f9bfeead0f688dccd09275a270e5b9576c..0d6f15811b27098010e4f0cfe3d5dbc29c8e8b97 100755 GIT binary patch literal 9188 zcmeHNYitx%6u!%|ylhdcRUj^p8stZzL=!YIwuFt-uu7GO1tHVzc4!y2yUp%asfnaO z)-W!M4FLj*N`%Bmh-uWCYSLOBp^#ueOpHGuR)c11AT<0?L1O*BJ9oCbQzZd^IybrZ zeBZtIoH=vunaS+Ed-leazs3vU87)NHC?P~4YVBAdlEMol!~>`rs;*a8KJ8oMdwv;v z^NS~+{v)HExwwF?ukh8Z$e$whi}L$~;_ywt9WhP~>w3c2lo+1twAVHfH-q6xxFHtu zF&4DiF`_M(>UuoUQWwv5IqmJ3V%e)zGi+`v6exSc{?VS^XoQ=M7$!OGT~_uwlmT+a zJzGZj7mO!jp-6+8;Iwz(F3Uf^8Yj;!dA2d2>%nLwJ{&-&y+LKKR~aGCi(jsBX|E;n zawt--ha&5vlIO2)2NH_w!5m^Cclu2bNT@MFt ze;2fB~|t_=5@pkoaK@-MmsXDvR8;%cw`n3dxhY= z6hJP5v`d9oh<*_7Od&XrYgvL?1AZ^$oY_M3LQX=hM$Ijp%bFX9+;QT4Z~!Jo6sENo zbu#MwmUwJ_I8-;kzBODA&N2;^e!P3)+cSsCp6J}VY}Nf$S0B5w5Pe=$530BeF9TF! zdHa+1d*%TnwAnHj_fI=~Z{!wUmvP`2?_unzOL#0i!@j_u<*o6A(Nwm$41R^`FbU;h zRNAkeX~pvq#ThTRxDjw8;6~v89D$XZ`SWsZ%jFt;|tk@XYQKAkFM7g6K;Mw0y_+C2!ss8sgj6 zZ|)fc^qXfj^E z!sLDE)zVJ};ZUZPb2%;Z0??PdmX`MQpY;7Ws?T=`Oswzo{q#_Ks+;PXc``E_^Jpfm z%*>;ig;_I2Krrq_Z->Zu!Fm9NrEexL(CcfsV6KVln3cJTPRo<8fnefS^uokN$@VZ3 zTKd)gRN8W+`y4tDj#Q@v$ul&(1#``0fx1!K!y`1`o;4q_%)f1!-z-&5QM(ne{5LJ# z%@zBCUhn_?x<7cV>S+Hszo!qr_~hivn7pl9e`6*OW3VvE3`t3>Z8^cDe{tRM3}aO|seP#QHRueLZkO%rvfUxuow9A0?Jn8w zmhE2I?vw4CvOOT%cVv4|w(rUIFj{|lMlnR?@}bhPknN4QtQhzOA!y`h&AY5`9Lrn&=~<2BL#R{24W{muL&o4x%@Rwi3NXw2A0_q6pEaMD;|+ zh}ICDBdP|9zJ#Ap@n~?Pk?^h$gu+I>sKZZPL-^>5D1qNe6Gb2xG@27i81)lH zDXLup@wkzQ&rcZfMA?RBx_)~lN5A||4CLr9yc2yq0b;sxIagvmR<#0XG6}1l$O?5pW}LTM?K#tE85DQd28*9)$;j z8}(r0M!lgW5UUr@#fsW1c*rIX$#rhNU`M7cgS{D9JnbS@;?U$qjX=K_{c0x$Y%Unp zIkEsa7>>pbl0_iKrci>o0$6S5fN5Y&MpLl4m1EUl(PnJ)0M`KHbUhZ0k=2snggmjH ztPw00urAb0Yy{**Hvz{DtG~@dBKMW3vRzVJshunlYNB^69v%Nb7^OEg!c8OCk}z<# zA7B_}HU&ZvQOb>%(W0$bPR1UL0_-mIFtXO!BX@fXvFl?0KY@EUpxJ$xG6%18@G1vi z=HROwe654mJ9yZ^V-Eg`gKu^4?GC=v!FN0O0S7g! literal 8964 zcmeHNU2IfE6rL@h1qxjfB{fQ1Ff~A8O9_ePLDCXdZ)1`Fq*2LryL;QN-R?HKw@MR# z3VM~xvSc-YnDBs45W@o|HbFztAfb>LQNjZ%4?Ljm3i{xKX*6;DzM0wW?rme@gD>Vz zGIP#%X3lqK&dlx3o$1v-e);QOAp&!R7^@RPG$IG*3E_wkG$9^9HjqtoYv)tpXT#gK z&{~@UwQyEMo*QUrnmfZiJ8PRr|6r|6XpFuIbVp{kFiqRqV^dRU244dPgQ`3S!vs86 zX{wwn#;T!dX6%vPOvU8o%P&@Z8+D5^E<4m~zI(Jm@tFfwV%SQ<=Hi*ShA7U@xq8h$L!!<)Lw z??lKGH(;i@nv6U$uF@*R3cR;#sE35$Sn46$AYheo^2av_$1u|2Y!*6&$uo^l-TS+T1e)7l%RjdlO1GA1}n0NU${tN`B z`-1-L7|qz$P|L;^^ef)0oF9cCe{i{q=PHdEFF*Ma@FUk0*f&WVcb{Xyu#@@Sm z{5YQF@8l=^v2DB7otw7~Ke^r6MRy=JXXkgjo2Mq7n}3!{9JxDj1DfHEe+@C|e2$WS zlg>G4{Q2y5oik9~N%yOQ1zy+r67Y>F(daBiwUK+`J6H>AQG7K=oxmOF>oa)HL2^id~Ms{2(&T$eyiMFnD8ESP8A0d5L zh5j)`f1jd%T%jOP+wZP(48G|1{gUW3i6&TLxZKvO_?M81#{rAT;w-;z+zUo-{1zH! zW%I&Ms6gl^E|LM>hdNemMr(n@_;NkJEi7Bvdqi!U0EKMC1(qZFSm?Q?%Yvo zUIv*Tpt1NPhA_bGVDTn3ZuE-RsBz0#yi9Eawe!@vseMeXhuVkK`ly|t#t)0)QEFq< z4pKWvZ6CDMOZf21q@shC9qNn36IM+0;)APNUmy~3Y(0}&;OlOIh(x2-u&sp^gCUc# z>`bd|W$cz0hxk0*0Y3tM z1pEm25%_N-uw+Hkb9};*4wF~ck?5cq9T+tGMg~|=SqM-EP-+19j%m0G??@M{Ems^AQeX`A{UD6wN$1 znWOIzp{mP7b!XTZ;DMw%2jOvJBM(Gy#zMif7f7lywV(|5@-Zo%hT<@0*Xzb0^*pW9afO7)L=&9Xwb1H+~`9 v!q1!sQ_e%p>XU1z#-i3^c|obAq!v+m`KX0cUNYsyqLztTAmyboV?qB7uu7pX diff --git a/avatarServer.c b/avatarServer.c index 86b11bd..5992049 100644 --- a/avatarServer.c +++ b/avatarServer.c @@ -5,6 +5,7 @@ #include #include #include +#include #define PORT 8080 @@ -16,6 +17,8 @@ int main(int argc, char const *argv[]) int addrlen = sizeof(address); char buffer[1024]; char *overMessage = "over"; + char files[3][64] = {{"assets/test.jpg"}, {"assets/test1.jpg"}, {"assets/test2.jpg"}}; + srand(time(NULL)); // Creating socket file descriptor if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0) @@ -49,7 +52,7 @@ int main(int argc, char const *argv[]) exit(EXIT_FAILURE); } printf("accepted\n"); - int avatar_fd = open("assets/test.jpg", O_RDONLY); + int avatar_fd = open(files[rand() % 3], O_RDONLY); if (avatar_fd < 0) { return -1; @@ -60,5 +63,8 @@ int main(int argc, char const *argv[]) send(new_socket, buffer, sizeof(buffer), 0); } send(new_socket, overMessage, sizeof(overMessage), 0); + + close(server_fd); + close(new_socket); return 0; } From 3fdef0aa3cfc087ba5478ca32ba38a3120791eae Mon Sep 17 00:00:00 2001 From: Michal Starski Date: Thu, 29 Nov 2018 00:22:35 +0100 Subject: [PATCH 7/9] changed from transfering images to movies --- .gitignore | 1 + avClient | Bin 8988 -> 8988 bytes avServer | Bin 9188 -> 9004 bytes avatarClient.c | 2 +- avatarServer.c | 5 +---- package.jpg | Bin 35840 -> 0 bytes server.c | 46 +++++++++++++++++++++++++++++++++++++++++++++- 7 files changed, 48 insertions(+), 6 deletions(-) delete mode 100644 package.jpg diff --git a/.gitignore b/.gitignore index 3c354f9..f8668bc 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ server .vscode .DS_Store package.jpg +assets diff --git a/avClient b/avClient index 3d2f0afcc85adcf8f73827bdfc6e9505742301a8..b29a83d49e053909b7e5b3f9ca77c61463ea60c2 100755 GIT binary patch delta 38 wcmV+>0NMYXMw~{lfCLZ$whbZZ3o_l6&CcH92|KW}kObul18s0Lvv?1r6FmbE4*&oF delta 38 wcmV+>0NMYXMw~{lfCLZ_&BecB!93@cnKUzq8?OwrkObul18Q(*vv?1r6G+Jr4gdfE diff --git a/avServer b/avServer index 0d6f15811b27098010e4f0cfe3d5dbc29c8e8b97..53373c63acc9755008fff2929c411a613a0a3bb9 100755 GIT binary patch delta 1465 zcmYjRe`p*<6rQ~wV)NrRNvjPFHFwt@S`10gMrjQ>8X3{o_KTD&N>^b7=h>OWC}1SztSK*c{a(Lc`b&2A(M``-7y zdGDKB)V$O-fDvftNk=Nye zr5qBMybX#f3f?xQNvwL?LKBd&gN*Hjrv=vI4Tc!2fj<*wY+Q8v8c{v$Z}0~ZH{_q+ zC?kE{Kfne3P&eP5`>pk1FoRt*DLGU}8IW2*4k(B$8%Z+aV*Xg%+ zll<}j<+~mEeU5xwX_hN~3SsmwZj7QBD{q%dlcZE2iw#qQ;RwY0RiP|Vwn{lgUbsbB z$T-`93~YWGyg5xQgzkcyVK_woXLMGxrWZk*1zI9E&cWJusE8YhV(e`}LjSL1= zgEnPKtPS6yF6_B!<4Z8LvK+~wq8#}^+H=xgkakpQqk#`)a8cTiq#c*`va}yddj%HV zXl;EQpyP#dB%+Ab>ix|+*rjpowl7WS0-<3-X9!t@MhJ}&Iw8ga&uluJPV1R;OGZy; zb~PUxY-N!|g_u->0lH0Ekw@>zfcRP6lJ5xiEV$RkZ?6Bt_5Zlu=iUqf*Vnr~?D{6x zKjHeluHR1{|886rIe(MCHeCNY6aL_sHZZ6sS&pR+*6xiD>Z#N~ilSF2N*zsRdMP@D zD5W1x5bgs`>q&_R2@kySmY!ib@la^TqovK*3_WW=o{2*Lr*rMm-$(t2>m?OBrMxLt zLoKyK&Y=9}fb5jm6K)iv;a0H_-YvFo(?x#U=Iu1UGxOS<}&~Q literal 9188 zcmeHNYitx%6u!%|ylhdcRUj^p8stZzL=!YIwuFt-uu7GO1tHVzc4!y2yUp%asfnaO z)-W!M4FLj*N`%Bmh-uWCYSLOBp^#ueOpHGuR)c11AT<0?L1O*BJ9oCbQzZd^IybrZ zeBZtIoH=vunaS+Ed-leazs3vU87)NHC?P~4YVBAdlEMol!~>`rs;*a8KJ8oMdwv;v z^NS~+{v)HExwwF?ukh8Z$e$whi}L$~;_ywt9WhP~>w3c2lo+1twAVHfH-q6xxFHtu zF&4DiF`_M(>UuoUQWwv5IqmJ3V%e)zGi+`v6exSc{?VS^XoQ=M7$!OGT~_uwlmT+a zJzGZj7mO!jp-6+8;Iwz(F3Uf^8Yj;!dA2d2>%nLwJ{&-&y+LKKR~aGCi(jsBX|E;n zawt--ha&5vlIO2)2NH_w!5m^Cclu2bNT@MFt ze;2fB~|t_=5@pkoaK@-MmsXDvR8;%cw`n3dxhY= z6hJP5v`d9oh<*_7Od&XrYgvL?1AZ^$oY_M3LQX=hM$Ijp%bFX9+;QT4Z~!Jo6sENo zbu#MwmUwJ_I8-;kzBODA&N2;^e!P3)+cSsCp6J}VY}Nf$S0B5w5Pe=$530BeF9TF! zdHa+1d*%TnwAnHj_fI=~Z{!wUmvP`2?_unzOL#0i!@j_u<*o6A(Nwm$41R^`FbU;h zRNAkeX~pvq#ThTRxDjw8;6~v89D$XZ`SWsZ%jFt;|tk@XYQKAkFM7g6K;Mw0y_+C2!ss8sgj6 zZ|)fc^qXfj^E z!sLDE)zVJ};ZUZPb2%;Z0??PdmX`MQpY;7Ws?T=`Oswzo{q#_Ks+;PXc``E_^Jpfm z%*>;ig;_I2Krrq_Z->Zu!Fm9NrEexL(CcfsV6KVln3cJTPRo<8fnefS^uokN$@VZ3 zTKd)gRN8W+`y4tDj#Q@v$ul&(1#``0fx1!K!y`1`o;4q_%)f1!-z-&5QM(ne{5LJ# z%@zBCUhn_?x<7cV>S+Hszo!qr_~hivn7pl9e`6*OW3VvE3`t3>Z8^cDe{tRM3}aO|seP#QHRueLZkO%rvfUxuow9A0?Jn8w zmhE2I?vw4CvOOT%cVv4|w(rUIFj{|lMlnR?@}bhPknN4QtQhzOA!y`h&AY5`9Lrn&=~<2BL#R{24W{muL&o4x%@Rwi3NXw2A0_q6pEaMD;|+ zh}ICDBdP|9zJ#Ap@n~?Pk?^h$gu+I>sKZZPL-^>5D1qNe6Gb2xG@27i81)lH zDXLup@wkzQ&rcZfMA?RBx_)~lN5A||4CLr9yc2yq0b;sxIagvmR<#0XG6}1l$O?5pW}LTM?K#tE85DQd28*9)$;j z8}(r0M!lgW5UUr@#fsW1c*rIX$#rhNU`M7cgS{D9JnbS@;?U$qjX=K_{c0x$Y%Unp zIkEsa7>>pbl0_iKrci>o0$6S5fN5Y&MpLl4m1EUl(PnJ)0M`KHbUhZ0k=2snggmjH ztPw00urAb0Yy{**Hvz{DtG~@dBKMW3vRzVJshunlYNB^69v%Nb7^OEg!c8OCk}z<# zA7B_}HU&ZvQOb>%(W0$bPR1UL0_-mIFtXO!BX@fXvFl?0KY@EUpxJ$xG6%18@G1vi z=HROwe654mJ9yZ^V-Eg`gKu^4?GC=v!FN0O0S7g! diff --git a/avatarClient.c b/avatarClient.c index 1414c8c..4b58121 100644 --- a/avatarClient.c +++ b/avatarClient.c @@ -40,7 +40,7 @@ int main(int argc, char const *argv[]) printf("\nConnection Failed \n"); return -1; } - avatar = fopen("package.jpg", "a+"); + avatar = fopen("package.mp4", "a+"); if (avatar == NULL) { printf("Nie udalo się otworzyć pliku"); diff --git a/avatarServer.c b/avatarServer.c index 5992049..8c6747d 100644 --- a/avatarServer.c +++ b/avatarServer.c @@ -5,7 +5,6 @@ #include #include #include -#include #define PORT 8080 @@ -17,8 +16,6 @@ int main(int argc, char const *argv[]) int addrlen = sizeof(address); char buffer[1024]; char *overMessage = "over"; - char files[3][64] = {{"assets/test.jpg"}, {"assets/test1.jpg"}, {"assets/test2.jpg"}}; - srand(time(NULL)); // Creating socket file descriptor if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0) @@ -52,7 +49,7 @@ int main(int argc, char const *argv[]) exit(EXIT_FAILURE); } printf("accepted\n"); - int avatar_fd = open(files[rand() % 3], O_RDONLY); + int avatar_fd = open("assets/test3.mp4", O_RDONLY); if (avatar_fd < 0) { return -1; diff --git a/package.jpg b/package.jpg deleted file mode 100644 index 476d1b72bca0741de2ae1568bd4f74c7fdd89433..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35840 zcmeFZd0Z3Owl7|YiW4G&qN1b~0TqE(85EH?AtH?^C-mz*SIhsr2C3|ivRqF7 z&v%yp`*zE%{kL|@ZT!1-%l)-BIgKTMyUUuOKkNIucFVrX-UG@jfIGkodAS|H5@k7g zWjR?bfI@DyOzw~J=hpy4n5D~>E38<#YBh2}={jJEoV@&!rSi*`Ek(LU4*y-)rOM0J zZ{K%pxytz~3Onwo?*BD5eTC-n!Veql+ITw;T)lgL<*JQpn>KIJ($?9vdyk=!vB|+h zrYBBXoU%M^b;ka}MF+=APR{PvuHW$R^z!z*=N}Ll6ddy4;iItd#}Scn@lO*HlYW1e z{4(QJ=IgBNH#tScC8cGQcjXn;HMMp14IdjnwRd!Ob@zPj?PIb=M#sh{zD-W?XXoY@ z1VTu(_+2h!1pXox^8YWA{Rg>}5xJHuT`Ip+;k#UNO9HF_I=COA3Lvb<&MgZ z{lBhIJsz80_+h2y0XyD?t9RR0ZQN8D)!Z-A)n0Myey+B^nWRdq`*6)m~B~eMCL_O-u7xHn@;SKnA zuLNJRU-kX;xf{13$1~BSFQNG@)z~!3>rrgP`sT>yar5Qpk8U=@GpC(RJ!&xPe9leU zd+BXx5L675Tro)`vLEb^0Dii^d`15|zn%h9MHl3n1%vyGj?s=M%EPNG@MCouQ%}%$ z?qq-dFtFsd_1>$7+fT^-8n?2}B4e6>=C$6R$Eww3k_D$ya?d21KKW8sU*XwpmH%L7 z)yR!*e|g>5xi!D|QS;ODGeAvqrH6!r6+GHAR?6X1sYVeRhY#+s49--Z@cSj_!mhrM zvY^lVTJAbqKEhd(r`kQ8wMlmZLpQQ`7V3skZ<$3euKAjw&dlKS_}2BNH>zIOF@t`X zyQCs>1>nDWk zZ3VF^1m5-aH%-BfN0&wNE>5lOtSoMF)zI;Lwam$Csq+05!}pI^7?+Owdem*HYJp;` zD=QO|r?9(Ms|Yg_1li0Bw{9F!U2+!4`}tdlvdi!2?VS!XAlyush1qo3)fsZA_dVsJ z?nKVA_SbLgcPS8M?m5)EMbd0((P*~Bf-4`SRF6@?St~t&QIo~qeW}&fI|Bs68+Whq z-CJO_{i2j$r22ebB?ACLhb(9|PY zp72^oL$G)$zAn)D>Hew2q$k~Tbw2sWGKbu3?_T>g|4Q=2S^H z{K+0Fxb3!72HcO6=-JI`OFI_^XH$WJUb1v11^>LqxJWf#?K8(;0Vz$|z!6$$scpemJwIzIB~d_P6~I+NEvx(AW`Ilb;fU}J?c!Kw`A95*^$n+?|iZnZWG*fzWA5|RndK@0H zyYg&U!zQQcap$MJqUe(6S4&SH>TfF^#XMwe`vG$0hlp9t@TQK^x+)V7@qYfre0TAM zG>=bP4k^sgrf^k9biW-z31&LxN$mTK)e;l5;LN~o##Rh{PTUATAx!Wl(2wxjd2eLE z@b8QD&tCUKX?i=3Sf1@Dm?4i>ggZsHy$&;0!P=Tx9ZbG)s^bb}$+gEDNcxJwv}nEp za~Zh~^RS1pdLd<-CbJ+`zsM-{u-!fJ@%}1l2P2=YmsB3g*`EL6fqGNXiVsnMkrnEh0xWxzQ&h^6A$`d(vA`;?X;_3qqyVauNiv+ zmi-`)IR>c-7TXL_n}R}N71XN6Jjl9caU1Pkll9Ie9vrQ0%8T*Y@E}8x>dK;r(Y9Cea-ge9VQ=mP>6Jj~NgUzvuP3(Ud|a;+ zImD?Kr)!$tpWT1IB}^nQaOZRHOB6{Z`D(3?YiIZXQuu-w=-||#*QD7-_%>f?hE{tqIqa#VP>HF{0XKl z`5&$Z8*>u_T!t=H=RZ|wo@O? zC|?5HTSo(*;C>uZ<_F|6t&<{y4g1U4LzmnRx&QV-)3W^9lOogS*EU?uDlG8(^mxs( zt)UL)Emaqyt8&$e+5V~bZf{TzO; zQhU9HG4vbfoTMOLyp>SjXZ!0*erqi;V$Ndek4-xpGY2MxSpOZLd1l731vgOFcI?|5 zSG#few8px1TO_GJ9`7B9ybG8GY}-9_Ih5kNd7&W_?O`ykRzjR56;eorj_lH5yh}}T z_qJ z8K9U+ZP#gEXbBP42DEEEuvk+OMtbd>KVZ^taQ(FV?8E`*${CA$QLENu`|(;Tk7QQ6 z_Nl10C0vVL+wEYVus!^T2Ol-lbM>;l*L)aa**P3or}Z^f{o2#5yez-#AzMlIHuiB- zYhSYM?GqHb6C-u)*S(C~1^ju)%R2u~UnG#q28C#m^~dSD z&TUV6i9pfP$zN9f&W4T?{_t3qWXiw)ACKh^Pwf9yj|Fj4zI!UjV;SPB{KZLGzTyub zWyPvLypt8H{w!<$C~LnLrN5OwJQkz|#KTcQ9_v=GT)pleE`N9|W`FOoNJd^p>JFH_ z{daTluXFLg>$AM<%fF=5ZU2%|xBp8@-SICeb?3jN)Ls9QQg{DLO5O7>DfR!X*Z*Cy z*ngBuUiLrh^?&S>|E{kQU;m$H&F)Ir+4KX4eJ{RP-sTojfbjj4aKmS%RX08#)bkbG z!X8nVUJo8ro$^y-S4ZBvV^*|x-)^sMWjSQNBS^*>@JV4M(`}=MR(4I2Dp`ASR zqPhAH=c`gri8&EXwY)`1HjXze;|j0)7HWd;hhBG^ZwZ<^Mv0p{-!|?NM7t4pB<`gQ zU~JH6Uv~F26A3sK9sf@`i@1#cG6uEeKmFo=9lQF^zNaMnrvVZ2G024}1EABA;LP4n z^l}Qe)CL}-x5|KY4%wWX3wj(;@GZz^Svig;#C30!0awwfGC<&5O%?s@dz@q#LHBG4 z{nT-fp-3L8jGcKU1MZ^BWdO0KF<}y;X2j)iQQr2tx564}O(=8HTm6dK$TlzyUkmb#ECLM%bkDG5W0HX5K*h= z>27o;_ypGBjmNt)r&qf;P$*bEXA3-oiWN?O+~Wg6P&izn13x-%dMBy&g3bXBBL+2V z!$rXr9DZJ_rdQhKy zHo`wFhQ&0igJ&)0D!`G_PclHM3G*{D&w73tqkO^b!}?Gz&*JC@*wb*Cp|1?6%Fq3L zo><}cCEPG3m(@^f0tLSMDg&-!XFqRZ-lI?V|!&lwIg;ynonw!R@+jV`f0RKD0QS&4kFg*zJ|PeK2pWU zPqzr}MU4`r6=UhJN&y8Tl4u;%Y%9o<0U@+Z$b{En>AMZ*%X(}FnuI#n87yYAh_G{2 zKp(c=Al&(LAu2p^ePNSM{MMqQX(x{OpDj-{MK$BBE%0*u8m1tH`79rIBE4EK-+!gX z<`XLzz};l%KDUxwd! zdJ2|7&Ze0MVNO!o*f^KW{s!Lz&9NWb^gCmB+Dy9Y)L_EXGvBc2FRAFhpLCQO<@ru_@1!2E8{KSf=mkf@+y+y;Y6@afu>Pd18>Y*;%?s6BJ|)Dw+tS!dW%jB z?pW~a>HSut{r#d(h34JZWC~3?sOf{bmaiJDoC0q5)ed+k11wKdbed!UzUK?Pn&0y) z_52$f4`wK42WuCuQJp=xd^DGQ=&tzHxhxI$F;tWrs?AJmWO>{C^&g!x^Xzwy>|z z*L((TI+()E0sUpb0Qq2ky8Yi&@Q>B!-zfNh7Tl1R{gYg@xLSy_Fn-Y}H$5 z8?(MrTi~u*k~GEfBWCSA6l8_-&7AzHGJTFZNuN%jw_+>^ZCixBIJ7(STZ%CG>CipW z!Y76dC@ye@=QC7t!Yei0NA+gdt-7~j;Tu@4y>TTj7Ke;QKxToE>4t=eSE6D{Dve#g z)amqTBdZ5v0-1L{Aqj`BUd4NUBq`EVB&5B4c%pRSj*bkt(ZxHcnOP+LIs8v4Adll%=K~E?jfen#`MVRRo31$3{ zF3GA%_$C8ZfTNk7-~tj|o40q&l$`lOPz?&L4%|4jIgTN|G8&Q5uiL7N^jj+WD|r{> z66}$MJKBad7`OHbdWCO4-G82NDtBW1SCY=&R&VJm`Uskar8RwBUL+-GXwE#bl+Ik|TMLfo)m4k#%Te z+?2K_D`9hw&<3-IGU&}rU+XEZ?;6L0{1gw#o+=$sA}B%{gzItP`-MsjI%#zxFk{gk`FQ($&(ZIM8+9ruTPe5iu64c1Vs?}ok}nD|VSb9sil^CGhV$1SrEg5{OSWN6TxB=zk}mjMrLZ3l__ zxb#4Hyqn>=Hi=1kNRxkuUDr3@+;1h>Z{$l>LaW1 zNOlU^-9I$AtYG3oJd``VEz|~b92ui@mijcg)JFs~>d$689=JKOs*zva)M0i z+NPXe6B+{5`jUI#-58cN_VQ3s$6xIB?hu-Y?tq6N`$4mr(S@l`8d*HUawIF*2aTE9=e z3*4dAP(0IME98qa8PN_~-9T(i-raxG5yi$o&+x%cv^Uj#8N7?b4rD z#0h{+u+rt_22V7!!|ODR-z8UHITHQU3%e$^Y!o{ZU<+*v#&6h~CIj|SN`%43X%Uc8 zFf&>~Y<~$!R|r*)2ym$`YAP+m3qwSGkvg`?X0MLpvNDiWeyjN|e%;vE)BDzk{jGzX z2qQbedJ^wQ*M#c%le=dh9eo+O=i~Rx2;~G6x2;rVCSOlgPRpVc#nsbO1$@sSpM3vx zRrJeK*a|c^IW7{|_44nJ=&Kgu9OR?I^KD1hUktbqAW8uLxX{AcdDn{-l1%tpmXuL$ zZ2@R^g4B|_2(_7A&i_e0|FPcx)7SsBu$r7X$IH#LZz#pX2h5%nIs{O1D~6nY_I#Nl zZ2;+x5>)oLMcXHa+Z<~H5ZA2zX6b6{sE_+9n<+6D12JM2{RZem>a!LE@RQhc`9Xn4 z`OCs13`(<^a8q&F=C~oxURSN_y}wgS7Lb*__>Fzy^^VsB&GQzX-$E=}9~-rp)O6q6 zIC8OqQW~8CxiQNS|I2wDhR1kl<}#vN|CSdP6N<% z1C?+2U?JMLOU=*v$kW{QGT^zxMSvr%#6Q$XzEk|O?ibMN-h zl-%<52d_p1S|e6>g9`;~r? z0rKYC2o0pwGqeLZOxyTYv9HFX3I7U zRp9)2(OU%YDv76Fy;zb-x$pBPv9H@C&5Lj`#%KVsvp{z46#1)v2fQWaz4+3B;3SX( zHszJ5{UqwS%mbrv28yYz5hX5zJB}Q4&36_ofAD!$!0n}TrDFvIx+8t~&0fwM+<~Dw zdfNgKD+wdr19GjW^+ySlpJZp(vqf>R3;i3Dt$9`{-uUX_q8C7D| z23@VjV;rim`syy%=B~%m2eSQr4eY-7TeqmWl*Toj>lhCWeXQkLRI?YvyU_!vXeNlD z$hQg~8mYGAo1GG?kT;5TpU8_2nW4q-5nmG-kVCPBTc-KpECiw0gpODe7YrV!X%?3h zQag>w2_9-sb7CbCRWcx20IEwCz7tmm?>=Wdk|>WDsF%G+Q~WZsP~VX{ zIq713$h|&IIYkf-nQS%i7l0ha0@;ZvXMHyKwI>Z(=ZTBUrpKMQp_giZH?|+obnF{=SXo0)sk_0~ZniDLuF&VIIC7)7b z8yaMgwiYIkO zRN~fH3d51e&9`tiEz2-2&c*nsWIGwHj<~hiaYpxJ|FkJ(-yiGHU)Q7m;u$UbXJr@2 z&wB{$d(iH_Cd`{(BzV`|R2ymf?IyujeXS&Rikipg2%-4`KAc}XY``8 zZlx@ZPN$`3F^;L|a$-$t_BakpWWdxl#HFLBD{TQAA0ZIxs$LcxS9jTHa`xloqZ6Vz z%!2=7wD<=)8*znJ=!B!0o>rL#wIJt|_+a@Q+%+yuCo~GpZRwOIa?@iO(3KxZLY$A$ zoFHAeCK(GSSh)ISHM{?WWS|~Fe?UVg9N{h7@{(%Mx1yTFfhl8niu+9&U_ZwdcZr(# zlL(YGfzT`>bfL&IdPJ!xOMvaAb&ZQElV-3Y^YN)g6ub(VafsW5l>zP>lHkZR`pVq+ z)d;qzUzo!GhUn9~u~lLcW=E(SEIVFcIT}Bb~s7;aUu$Yo1A(e>n#2jI?rAyg0h$uV~BcKR*Yf~ZtODB ztwq4KQ{bJ-8!|ws4DzQWb>z2ntaa$`Xm9L>Bi#W_*sR92+!=fVDDd}&1d*r}S$tGF z>For&kco|UcRu>{fg(yqy#~ z*sqhKmparE^O;m16G``*aU9av0j(5oCv?TR2IW>KKOzgp`b6<=-;%60bfASZdMF5? z%Fm3E>bR*-VbndzsI=r~Xqj3R^^nQ?gZD-Yt2&0J7G3onJhwP$eT^!HolJL78fWoS zn6DETq|Xgg-RsmyB{o$LTg zCC6TP)>2>~jiD;BP)nR8?hrkzAjb&9@T$OZ%DUAr$$&8`oq%2F;p|Aqs%o=gpv-3L(gGT#Bpanlc2F6j{k|_Ls|S~ zgbwh75n-nd3lmQG0kX}f^ttnz8;x=r=fGOpTmVELi0-0ub0kjW4iuy%t!k3|#4r8i z!G80yP93BRG7)Aw=2qUcMEj}v0TviDv@D#NRByW}XiHZ>-=y=?TyOdyC4M3tL2uW| z+T;T8RwE}%`i6RC)P2-t7t&0SUFi6+>y^3uA<41xAH^5bUcHK+DVr*??NmqZhhPoz zyx3&{`t^0rV2$dh{440Dal{;PyGW2fB^n7hyqKgz`tJ}bYM?HV9 zY_>+_IGy*~4tN^dh_vw{2|7pT*`XJ=%+Pu1XIO%G*qw|t{+=j95HC$MYVFO1mFXPv zx_%!zFRtl!p)`5uk{PL3gaJW>rgK87=;>5O)?Ixw-@SL}lD&E+6Bn=|h07q{f3}CS zeORf_<-=+w9rCnswz1_DT?VgK<6@XAH*jh1;KATw@hXb;fQy;x0>^VpDL`a zvh#&Wb9M9ySSdB}xsJiODpO^O4*4fV(}^r?1Ss5}Cc^qj@HU?j?BXtDEm@s~^y*YR zZYlCnY%ch*3t5sLtvW9QR;j_OED`;7?SWNyTbj{-CwxYKLUi&Bp{1{Z-J9=es$E>* zGTlfAq^<(8J$`Ts1whYViQlE=P|1aJ0{{GUQ@CRMKiZe=Ww9T>J?HZ;J<0Ez? z(LcGS2yi4nUmOBmmQs*t94P`bGf5IV(2h&X=%bSoybQo>BrRHRxGh$~O-%?b;T{{F z0<02^f;ac(UH^iZ53rq9GcLmT%(-xp0cj}qB|L^dgGDB6zQG5?caWUshut^ApSajz zw>ay1oY~in8o@`1OHLwG2z?!6rW8DhT8pgUAMY{5>u1pOCrdNI0JHQHtV7*cNQYAc zx)(v}frBE4WisF+Lz+r(h1;E#s&$q6t~S)5RvC&114m-s~VQ+y}9Ws0gc8`M!l7pN8?T;H_gio4=^LdWk?jI@I8!9aGfz$*+Q z%uzvSdrowr%l76=pe?TOg(&@b5ks0lK7yzKL81zs=et+a^yyGEGsQJz#Fj=08?x%9 z2gF%ab&Q5AM!~C2$1sXXpEApQ`a(@$3o>G8?<4r(W6}siywVx`mQ$1F_OSX1ORWN-=NAk9$1U3*ehiE_ZIQgj)5>?hUYW>&Jrt%B~F{Bmt8h;Y^3tl0yGxiwE z)ubi>EV=P+(c-!NWvkaY1J+Ay^t&v@5p!&tk_)6>)!ovJuu{lYyczC-H*{)4c=s#Y z>au3~gl8VGP0H>z3OBQQH4uLTZyqACLN+9A!!ofk3$5WpKh$_{+0fD7xI@|-4{6y7 zcG{3Jg(L-k?$-mu=7rfljJ1;BZKd70Sb+<%WYE@h|0!|DXfGxeEK7PqRpBd)2;Q(5 zz|?P3i@t-Yaiz_xXAKMM3a7r|j$ww)oeSyoc7uF>SACCCTF1C`RIs~m{?@{>d2cBj zs@g!}>=UnV99jL?UVLW6GU{?TR#MohhwecT9_^Yfw1Kd!hf8EP&}szArFeTOMxbA* zgDg8{ue=1{$kXX(%+~i``|svv@o}A{%jlBO28y`!i2tTXn#P};=fMYy!beDO)Vdnp z&Zq8}s9D6%+hb0C35KuJ`Q!u%ICIXEfUJxk^nQL;!g$={otYjQZEh3~1^On9k$*vZ z>tK9OZH zgm{*NQW+qcp6i)ovhp?EknxK&idLxG41ew5>g#bS#uGk|856$9Oq-Jd+wLM^faZ&~ z;ZKo#1>Nl0e}pdjr)BlXsgFCHkqV_x;U6G{5jvac&Z}{%h;%((V~tn3)X{e#G9b!* zhqaop{bc`K7QbiM#?&MDC(iewg($Ye;fY(`{vEnW-cre zbeinZm4B~4!mzZnVEDd4iKS4@I~a@L>170rMAw(DYPNBf=_vO3>BitJM+TgUd?#+o zZ8>9+a{gW1>`8IHE|tEx%`tP8pOPnG92qOC(rw1m!-^HoL&wZWyjUmWubB?ug1rn_ za)hwi4t!6PtbF73C46u262Ec8)yn&YoC#jTMmjK7Ao1J4TGNs=hxlx4JNFg5iB&05 zX29jN9&+*<^>LB8J|1}mB?+*z-y))b2B8^FPvuHBr=58r-qzoW?2l{5GXXi zfz0ojo>3b@5&Q{NMhqiM_F;J^1ivPti+?A4@OU!_&vu7enV&4Hf+vJ#4Dk$2Uz#hC z=cO>|bx~wR$@b168DKlx?UQY?lXs~}r*-s%iKNsf1so8k^p$@*i&@(AM$%^foAfud z2fbH35?zv?%yjWDqr3QsLr=GzN8ghH!P|uBfsjQyf+{5{9n7Q})K)KW zT^{vHo?+jHYS-g&R?CWDE~J%Ujwj7^h!-HoVj;4>vzCMeXYw)cx)!3c9r~uvRivqk z3meVyqL3w|&GfFSHsJ;M;S}K@q*QMlqEy|g!1$0mFz4=fxP8f}D2{6nc356fl-loJhtNeFV(|pIrtX5p*Qipk z@&v90(S3zM1P>D3XJ*6ER01=|5nlO$$NfMsYm@lCfNCzf;5RPnPKWM(aUa2}mcElJ zO+o=kxg01_9dT|WOXP>et6ippXW|_at#(9S_qu5QnSoapW)hAX7w4DKdr226gTM(= zpB4g<(z_iPL%|G!E$fDO-acLbme*SUBSZEAB+j5E%`j6OAw4Psmr;Z9J|1MxL~d5Y zhUvWX-p=5FO^giCq}BKCz%R}d!%=S;)x<{_)tm61AlnO_8TkEH*GdZ$FC}-Q_iZ*t zXtArBj&p)fMB%hmDgH`6T)+6JCmu0Z5>Wv7&40r#a96nucrHDRtSM>Ui{_bmxI<+f z{;NY9^S5_Oz73~p1xe~3+>ny)QZwL{6a3@-?-^TO^9cDr-fw8wIO(BoGU(DD$UrOy zUV;EZT+fF+*_9-0Gol3aD*F?6{Co@pjf*yEN5q{TjV_~NQJy8;g&>`g}2VyC6Z1hI9hI)a@lS%R0re#Tu4Oa=Nay=Etb;u$y~i6moiOG>S^ zH2=;7E+6~aSu+^vrGD_404yox(b>m_QNPgk@Qw3XsHnb@eV8Cu!l2J<#)kXVo*Ck~ zO8O#Wy8xa>5M2RT&>$^#WO0fm`=Bd3V}q=A4hG|Dnv(2-VAc+B8R9!yfT07bM;Jj+ zJj)|`hM*-m$=4yy6y>uNkFzE((!+ME3wI;E>sz4loojk^eV}qnVk96w)rzQ#^tG?= zmEx#NZ!d91P9x$++{4^8{F;E4n5hd$GT=p5IJ}xgj`)@>xUHLJNx@x3*p6Kif4IRm z!lYYB`f8)=EZR7^oKfP-KtPK)*R7q-J7?Q>$Nhqhca67x*Y_GP@-0+D4=VMcZh|!* z=w32lQSlNuj7V<~MJh3<<;JKb>md`^x+%1gYW}&KU{P_5(tJITQH;cTbDjBTb_s5) znGs860F#L>5rfU%HHfusvqLs*{`=aXw8$gRte!A)l;lhgPK(w5ZN3TI*jKkLZ;q0n z*2n1|wFKX#w57lb7y|B^G@Q0Ua*IFKP#bOU(0MPHbNpc9_#~oM6UnXmt>O{<6;lnNp$*f1aLl|=S_H4cnL?-$rM2HMid@B( z)b3=C|G2AOOGDpC(u7B^&?Lj45pE&8ksR(ad?k&z2e~Z{B81CBV?s2Voy*tEIbA*x?A@s z^t})vdrW*AXF_Qw&+JI0>}>JaIqjR{MFAT|5uKo!NWLvd=JxoyJ}$vGZoGE2NQZCm zsmm|D*<76l(XG276ooM9vpv@!)O>~FfLzikoI~6*h&b+1a{~K z!o;BS?vCe{hia#BD#PS;l2iPE_+jiSmy}fdOYcs*U&K^OMHunph`EmoVn6Yvpa&Mx zRQk0_FwAsK4JY~0bGL0BJB$Kqv#L96FN>UzPpY;GR>iC*mS!5STn?tgHRzm|?2 z`{~*R-*W?&a7FzP19n23>;<9()UE6p=Qhw|XnUkDaKR=|%udm-l~ORplV!X5S;ZwV zS9}X`WGu5u+?@tt3Xyx*m^ftr>|cGatvPZ%@yO0*$`HE?B zzmrqvV_0VVQ`8;PjFNLyl3%E_c5YAR-|qGQ6_nTR9He7gtp8oiCdC9lb+tB1NWcia z&+J-qCgvYY1^cIFaevQ5!it?dv>)xRV4_%;wUSR}kYDpv6I;XN7B>8VL+g)DGx6*gtrktrFSMpk{3AVUP7fwBZ$&@tX> zCM|ZD6FU6-aSLmA0hPN0@qN4L9ux~vhxA6z5QCAo9rOE}_t3^ys`b(8;^cvoqdLCLAfS!Bugb2n+kybe+NK!S9LPmGo!S(WZz78LD9#$t9E zSrbc6BP}F|Cqi^EPq(ji=T%3F;{~6j@rI0F?7V0{@{DSQ<|^IVp$?H_)ZUx7%D5H` ziPw%>h*cfTM}Hj=9P1z)b{+~sXrZk=>w?aH8ex|Sx?9Gq@pn)RDVJw~g3TAQC`5yO z8m(;7KDf24tcR{)uF>ySon$;aooKz&E@%Jg6dIzai_-6uLaLL~CEQ+~UReru!}Hzb z%f2y7FU5jw7-)S}xP>%@?v7V!Sp3Oc)khCq2XCcDPN{nu;d|VC>AWTtY6^XTtc6sP z4mKL_(9&>y^n5~Yf^G77lhLtXp(=PP(L;3cV&DNs4w20i??)&xAD$-8ADZfJVyzAZ z%MM>A?pM^aJ$7TB_?H1g!s5upy{ituITFDXoWj((lxEIvo1PP z_&NwFhLRD*f4jO`tXIvpVar@?CmeXDEG#oXG}(H?cq>%BLc zc6xajr=wbev+61*JmY8fgRLjUGC&WPV&T=e*3IsabjDqvE_f%6N3uT|D_Z#C;WI~j zuvlrjzpuLt(5T3KjG!6 zb7fd^3%XCtY^}jOBB@>DB~=sm&6jj=^mi)x3rbv~qFc+<;PIBy=el#N?kS<6?Ysw< z5L~vlm02I2?K0`;=pa->d6heOCg^p9N+RZZu;QNxpF0RGLpu=fG;F4HwC8m<+fDQ; zMrphI?AUC8POJ8!^s@9hyo%67Q0g&6ZI+mHWmNDpCP8Y1KUhLvJZUW;&f{eOTo(wU z;I(iIW4+{9#uR32>A^fBYh9DDmTO&LvCu_S$ry#vBxoA#%T3j27(l0b>&`0)=#Yu{ zfW(kz9+ihv?$V@n>6aR4Pil72OSbt+vcPisC_*O2RFZp51Zr&vvEb0dBGwzH9Wk)S z9I$Qw8QlIl3MS}liN!mSD6?lmR+%vPiS)Us+_rg-u8_bGT#|;tJMop(v{f-5O0Bh| zBc6T5O`%FWB))eNi{zv1LVGFwqOo0?O7%wqSwoq3q*BC-d zw*9f=ld3Pz580Bwk$V}xq6@>>V|fyF9;23yavsFEdOLf2tHlj4s2krRO#Y~?!BtCm zFrb@WWXrbV``A#+AYVhpJGbbDi`v;82rJugFA(wQP}z%}C%*n9*;`Qjp0I+iQ%m3E zWiHQqMDO$Wy^7V|0B?XLWF#0pFzfgd{(_drS&7j>Fm}0*-|FeZkKwK?#tybiE{1y( zR)~hJ)+4zdh#9ydF)Ry`IPq`H{@7!+!?SEJW46Uu)PrDsd66CExyZd`{q7E-bY$qJ zA@NrR&zAIXnv6MBL5?)qFe~A_5lEf65Gx#9%tcs%FXph2TtnLI^99PSOQu9{?p5Nq z9C4U($t*4z9CZ;z)4j3eyV87`9!7$J##oA1UhBR37H^$7S$Iq2PATz?VQ?#FLPR;m z>9&L8s}httTEDsrBB1L`&UU&70t!R)5~Ask^*1NkJyXtKSb0tS8%7hErOK3n0(n7) zG?oeN4xlR&P{)zj(4#4pV3Uo_{VCS(;%D>`ZcGS@JfyAV7@%mzH9^c58$pTvf|t^# zx6E`$0>u8aE(4yX52NSIh+Dvn%OD-jM{0Kd3|5j1t+TkHMd&5FaznyWgEPF5V3>OFV3bj0x)S6BDhzh zSu~VE?r7~-66}Y3c@LO55^KokPM~L*<3<6+Autf-l+T?~jarjW(jofI>_Hy2OM{ z8R7PRp6x0v-`+K^c;-}0t6kYZp&=do^bEN_8^MRuT(ScA!31|~*mh$tvYiCAQGY(e zXFoz6UKw@We~RG;rWPUrvq;3hAAW^WHq*+&{Xl_y^_uOWs7o};yO=JgEiOSXL_>kL z!weyM*yi%n39kCtXFL?URJ_9nRT9|mKWKa2SD`xOCc`6c%)TWplqecok8h1dcOUNQ zTaP4T6;kd~k9k}P=I`+}sZGY$+MOzz65P40S9`O7q}>`nk&h&hkZZAuL%0K-=9{EB z2dT$0z3mu!#m3$5DDV2`bc6y^cHFyGW$?p(vOYEV4hvcN&m`WRLiK4}1vFC9l!7>X^&NbG5|9^^;f)M~2ENS{y~Ll$1OTj?}& z_Qr7o$ep&(9vw+MT3!Zx4H=OER?cPf29ORIPSxRuTSL#7;D*c2UKI|nlAnfLD2vdw z94nIn+qIFNXV@$}K)8mJNVIWP!+SC801vzqft;?~jK1S`#NDLgF(NgHAz44yh!)q9E?xYOQ47qBvxfmAOdO1LSEfh zMAyBg5e=U(_8`RRO~fNa$hG&m1N7lc%u4J$eXAFGa~@Og_4Mu6DY#GcsaqTw&{>IS z8A(Sx?a1poAl4bzQ@xPTc@^J)gv=(z7>Oa({1h&$&B);JWT~+X80kW|lV!WaCKAKt zDPv#({GntH&1F~W4xxviA)6Sm9ABITKg;1^-P+gm-Vhfn1k~(^rVKQ};|muUaFZhv zG%F3PjY6n!6xE4^H@#w>q>5~>_(=E9=cwI407n54k#qQB6aS(q65(%~E7hJKEWTYp zd2i|#kq^z)gy=*Rm^Zwd+LDl2HCkCF3Ya~Ecs6LBcU~u*St^jSF|#k8Xr>GbD7zONv3Ce)u6SLzzCDN>VW2fzPN#hTrVy5GrmV?fU7> zMv8iAwlg?!2MjET(0p)sA_l3p3Q0Rp@sAvCm~d{DoBN>xAz{)AO@!zN(n#q;X&U+} zN=34a&ml+Y!8=`DCkwGoC6zuVW%v0z9ljQEk#q&5KL*GN$f$$s5GD$v9%TCg)}V%; z>ohaM2J}7r&3Nq5%x2?bRcPWEqga|#{ZKk%Z`DCGFeDEK+@Fnh$^d;4R929e{tm77~EvvZnA7=p#bkw}iC&AM&1C z`aO4kBIaGjwR^Z^E@O^xG^4;)7KqG|<0YVJ4RPA(Esw#MSf+w!7S4T@no zOfsX?gni{T+=^OrkF@DhP$c&wuBoD*N_?cx7E-ON5sRQu zGiZIX*-qGhq$$>m`^RDX!!9P;?BFA;sh@rR0 z_r)n9y^8yWUP06Bm00wcUDSziv4|b-;LsWco*7BlM!gztJfRg@;@C*yo#PU>DAi(B zy}&g%^`PXiB<86^pQhha?%8{<*Kc`@M8-yS_z26LOpGK~Y)#|tC00>UND`MCR?2{m z-$Kuya2z#Yd$1I(t4Sq+zusuSL>8p>2=KK&$W+vuQFBM^$v2R6;5HgC05FyGUTarF5fPlyV0wWAY zMMMn{SwfH{t*ioKWQPO@1OZt>5+X@MC++J^+Z^2Ga$hc^26q)UOe3=YWO5x(@=qvek@Zaa2f6 zrvQATH;rM3y^$zS2Qvi%_OBwz7#XYPeFq-TP4&4(o8W#4u1^{!)tTnMlGiJ1&v-Xl zJ-DoD#34%1Ig2i~f-EOHNQ_LXrHa`%xOv(InoL3$Bv$2r_%90EjyE`X$0rri5Z{4%~k=FyJu`B525i>Cky-(Qecns|z$VlQ%^h z)P(m}>fi8%>aF7ljrT#de6~83z-#@1J3f)TTRcek8^ea4is>a+n&-OJVm&QZAo8-q zMW;m-qMLX##92H_Scw=M-hMteQ#$cp_+o_-In9L-gF_P=Mp7~cxzEUykOZI7mhpAP zse!8Z-T=CMKxzTjhx@yFHbAJynGb2ZxZ%n=Qv((&bX)b=;^OP)D%QVF(`6Tp~F zDDWk(fW4T}Oq{>aWnp!4Tdt>7Ua-h5_xkIo1JF>Gs2W^-oAh=PwFe=724XI2wnx4P zKC8U`;N*vpo@lzKPhRJbNj?5s^Ve2>U_vM`!xD1z@wEBnj;eWt=pMi+a=-l}u-iX- z?U&N^{m-R;tPn=V(+ll!BTjqY3+V63BSVFW;zX#+|Jj|x^RjB?s{SmHwB4Ya`qBih zkBD0jp0$*1T6Ax4VuXTrK6+7HXXRSaGyN6zfhM;O42(l>Tp=cX)W=&eKHNe zbpQZuDmy{|#kS!ZuJZ-nY6@$?W`KhwvR;3<|L%h&Ul-w4=>+#|XgB9v!6qdw`M@iw zC%@0HGV{klTFt+TRC_V&YZa!Z-tLgnR0%7uXrAB=8I3)&p{uZA zQU`KvTr}oO&zd?hT|j<00vHg`D(0()$x#+etf}P?^ZQFo6DeH4Eyrom79lKpul6F~ zenOdZb-q;}7Uuzv|8%MU{gpk~KmeR){E|ISO-JG}19?)3CY6#|q2xcWnczQp1kukz zMK{5Q0z^rw57g7MCh45+KB#Cg^@%@V;P)E1bs)B#Ue?<1TfLu$MN;#c;;gtGEFcNM z4cWP>Ht-s!Cs8LxJ6>CcyKx?wFI%u*cf=GLLs=y_WU|@Y>SB;v2xnka(k-31D{@c`zb6uQHfGFeFj51b5lsoaGEKMa^qO&z_J6rNz^2l9N zrZIpG&lYJT>6MsHDFx){QN3cbX3g-X9Q}Eqp??14zV_i(-VbWe_H3t$6Y@5$pU)^K zozi)Q3zF^5VBefNrwub#1Og_sOuOH@T6^KJeAsoRyf8nrv$DkPnrSC3gQ#4Jm^NIv zuN7PAxysNXrkVM1Mal|9f=s}aE}(_dq&cxKT= ztS;IWcE*|4Pw0-2P3y4n2Gk15J*_!&Xl2G*TKPr^n%IVD*SH!Xp8bo=Yw(MUP^;|p zhM`@emm(3UzNmHyZeEMVU<1UPs+CQ zw+I`~=WQ2uT~wr>5ab0zej$)yT~z*i)r&`l&D~%yny4fqGi54qSyFaCyb{64U)lCK zkJ8ImoXt;+-`f+PQ32PguFw+Y?nY7Z8tGlA#OYY(n`QiWu|hZHLz$?`+2ylVZpEWg z865HcK#t}7Q$k7mlAOv8siN3e1yBakP}MTW1+)j-6riC#@qZUT{0CtD{}4v}*Z(*3 zi^<-8S8+e;iB>(OOm4;I^JV#caBKm9Sq!aZ-M7nvAGn%OPY&&{{-lu z)|E3YUJ&coopbMrDNZVDR;B{YC@jzue+9^h8aEFr%kKHBSw@cgnC5ji0rkH*>kQyp z&o6U4py1Z(jC*)LgM04JeF!_4LA`ffw=pX&k7W1T|1dfKB3K=*o1g4kKR}(Z21IT3 zw7MbQB>R25LDhb-mnIO=KvsJo=Su$_Kf(} z{AyB>;xQPuTp23~K-cv!_{EhBBUy<9y_bH1x>+xIFsZs93p)5|Mm1B>Fe)Bdee_pj zt;7G23jPrx#vi?w@WoVnzgrx;BNkaFQb$3H31h3lG~vS(c-5$KEjB;!(~LFjN^SIO z5I;XW&bmyV$>NVNt&h^vGVWS+pQ<IG4J*A_{$8ubxg;YSPNl8j$ zxd>f7iwm+ToBWE);AHN3{y1qYxr!2tIN@@AaP^tg3FGC+a!Td7d{N&zTV%+`Q6!B zA^3FhA}6}j@$Nx--q#saWxU9vD@TgWSM`lL%u}9wH|cz`MnL;1Ae4RyWhkb2c2vM# ztYy!VTdS8c#pI|`Pr7`eBk}^LoNR6GF%xxUD9+G@&2Cd7<77L(!8MCjMDR;`Q9BKs zHNOq!w`W<-W(V0GO{fi*C)6eN^doDEh)U3-r?%h2>S1lT@4T8JqlUT1HgKX8=q?3T zHbwxX+4O=;^#a(Fa8X;k0YcXydHhO0TRQ#mNx^B$w;~g#@t%`#NTk}(qXBd^q-vb( zAZ}(xTW-I3WV<8icJ5sEw93Z1Yow3C7t0~(v!>->tlOkQMA%E{^F76tY!J<9KmQ)! zcgkvMKWZz$4{4^RMrG;BN*PXV3YeE_{bNfc`7P_QwtRBm1RD=&w0%h*T;OtZ!4iVc zQ@k}d+=aG&Izgbxlza!h-Z};*ue$RY;D$;P;P~h6lIcTLdh+evjOnfmDhGfAJoq$2 zkeH^m|4m!w%V51~X-EGn_#4!jlO zN@m_0P+BV5>mXAMMH5kL`F4#O810;f+?M-f{Dp!v69#!|)H7h2IT)B}Z!-KAvHk|m zTUGPwLOPMNx6eO}MCB`s#0oAX8eoMnjxsy^aCZq>AVlE4Lb%G)rJDNzX^iQ&SX0fB zQs@2g>#y=^;ImYSIV5y-M89X$>PH}5W28@nqm}~5=XQYkm2{vnQ|`nL!xR~ zptSeX3}jv18&Ppl%g6RGlBT3yNz}~Z6=;&w8}I3BlGS?Yi0}R}skwi0@u|+hjoqSg z$g&y1u8`5ebYcA+*u&86l>s)t3bnDPYGS`CV?mTP>L#)cD!dVV#dueJAy<>*9~zfY_@nrHFFv zm67X2WhyugbhM^Ia8 z1C3%A_-g6atkaamU7m8XwIELSWMIh{F+r-1R*jZwk_m3)#cGI?P^~XP5vbfsVPk6J zIoR!Lj}tljgE;_c8Ld@LEr)bUXNyz8Jmm@dqDcw9`#7W3oLSssscBENmReVV!Mjma zdX>`+(JX>nFk5X9O^N*maqZ4N7sHTL%FU&aNVIn6u@T>j?lsHAK|EmbbA-tJ05{9< zm>i03$Q^r(D{(wj2l(tN(7N1Y*YRVanKXBFCsKheiCsEY$|)xAAhxU~cf0N_IWJYN zA`Cn{L3ky)$=E0}ui`I4goj#k^ikBV+vje^`Oqgh>yF($kA0f)YYh20PIiR9=%lN9 zc7$uv_e!?*XcE&Sf!dHK_20}Kr;E@*W#IZs+ajmbg;LKC2i|GoFBDjJwCO(uyD%EdGN{5 zoecTH&YC;m?20t;a9>(@f|#J?)l6|++4h)n9JSlXr(BALDPvQsjEMa#Kne_vk=V45 zW>PiJxGbRp(^1%z1cq6=kP9HF&UR`EK^TJWRw{!zP^We|H#y6_w20TZB7+L^#I0No z{d%xWdK8E>4D2+OZU{}_YoqdRY}nSzXL#k;eHfJ_RuH`b}>{Y%T3VIngnoW7ChZkNJMqdw+Q>$ zE+g{7>ZI)AJiZnoS>wZhsjcgwSY>8;j!D)JyooG`sG@;n> zX$BVt3$?=7Jg7Its_-3cZcEP3Q;&+;a|HWfnB&x^vc3~bB!g}8zjy9?W2Keowf-D ziW9H9J~SqG@k{`w=5p=;NNHd$>Mbm=YZKHfZy+(=?y+W;^=$&U9OZ=!JQ%NYw0bI2 zEa%Okt!`y(SKBvZtA+z3ADdPBcAa)9mQHy0x{RZQ81SG8D%OZp;HT7!=#8xyMB@6) zbsVx!4o~b|^il6J7{)k_uS_xqtdDxRyrw)h3U7>9_LuDt&%2>-#e3e9y)50Iv}Av( zA%J|{M?Z)J^OQn4zlJ@}w%5AR%*Hak-sq_7CY^$bZVPDpdKDT853-)}`Qvl(hjxqW z0Mhe^)VhDXNc>Xj-v6yg#9%~C8N3KNu% zLajgmz0ud|0=1c?Jp*79eaccnjI^;A6IW2I4UObJPcLVCC6h-t`wV!xQxTks(2=$C z2Coq=z>X?+fIKTt*wxB2w3pdC-uq#)K}+l${X<%zCa1cODgyOa>vRdxKJENOf@dt<61o6XTsI&o%}i z`w`RRTQ-j32iaB`bmfZsg$f2=`}NzHGSLv4tzJG&L2)0fL<45x%M`!%UetHM_~E+xdlj!m{oSZX}vS#j?~O zE%FKxA;Oi9?#v2YQ>AoBwPC+dSx9yAyp&irA|^eL$KF#%V~dEsqbfsuRM(N#47 zE`nR9*P=fMF@$2~7&DuqyJQMJmtP>C%alVb0Z912oMKIlbxueyedPzplNft~r$_#( zsy`Ie8p}ASUI(@>daT4MnCv%x@yXNOQ@fVqYo|HrJn(GQhctJDFGD6Yk41K^IcDdg z17*RvuDby^*KA{r?%NHa3`)<8Q1;f{EfyW61fLSvzc?&>6g*4#cGF(+FF>cv+oC># z5UGJ4vi?dg0~fA|KhR%jlG{Ugp=v4;5|)g%85+e_>xSHTM~QQxzn~t6L%5;bsS
Jz-UgM-bBL_<(_>tu0@AFc{gquF4KMK5xh4e?6 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 Date: Thu, 29 Nov 2018 16:04:37 +0100 Subject: [PATCH 8/9] test --- .gitignore | 3 +++ avServer | Bin 9004 -> 9140 bytes avatarServer.c | 6 ++++++ server.c | 25 +++++++++++++++++++++++-- 4 files changed, 32 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index f8668bc..9e6363d 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,6 @@ server .DS_Store package.jpg assets +package.mp4 +avServer_test +avServer diff --git a/avServer b/avServer index 53373c63acc9755008fff2929c411a613a0a3bb9..42f83a624500fe97a4c39f8ea637de5687156d79 100755 GIT binary patch literal 9140 zcmeHNU2GIp7`+P=p%k{LHB}K8l4`}+AK;<>#n!Mo#0urlGzd($+bvzY-PYZ$whtyn zo#G%co11b*7cgIm;Ial>({b& zYVu5_cVyHl#ss>)(O^e`=jj9BUI;j+m{Qbv+U4NKE#1>XpsIX3$)K4Kb0= zvY}nh5?$F;*W-!y`go?wsrS+XTW_=Kk>=?EbCllX`lzQjg(7XC7&$qhU8G+Z$5ca9PuS6k0WW&>Rh#uKq{bi1l_>eVQ{I@L~|ou;f64Z7YQ zeLEa&(8JNjR>`Mc-#(?s7-AxKYS=Ay$vCONhID;Z)yAr<7Q_ShnT`vmWt?!|>AmZE zG@{2lTk2aQdRrp)uX>rV14xhMG`ybKTi5mNt&>+_`ug(K`qI~d+^M&a!Yb){B=BGB zD^z+Nsy}(Q9`}21S`2pbKCNE8<`w^{)#-c8=kOai(?KOh9qCtDE5uTK4wMo5?3kJZ zTS2Z;rB8^n!1+sXZ^80f79wll_rd-JfkUvk?L-Z7c4A-VY(HeT6L(-dq^2d@Cc=lD zhg{kokCjHk^`#A+kp^(4hmpCC{y)AhD1GMH17AM1ZTCZ`KAXK9bv|SdvRIHSGqK!$ z-Y1@A!1-)bsTljG4nH@t6X&f!W*hgAGjbIlE1t=#%dAf|B|J>R<}yv73@nR>nlBdi1L%WhT=&|xW>@>?hTV>5>R*HJGThyA}j z+MOKWaLqhny^emANhz5vlzAf~vjzy_>rvY$tXi-^Kw*zJjb5l&We$laDe-tlVxBFr z$d)LOtcP3HQtw#Fl)aFFk5OTcYRP^HjNKIe7CSMG5y0#fUV?%(f+l;T`+=~+QPg6E z-`MOFSosap=*C#o?v_IPDKx+m+vU$W`_fDxjV(YAYZJQ-nW-<(~DUoJvsHRRtAH-h%0p{j9}gE6{0Bjvg;RnHkSrn8r?&)?#$fOrr~UtOt`H z;?G3$X!*(H0DHj)i~{Q>wN0ag_&a-^xtM3%o1e3X>%c-kM_W>s}t0m{(}-*F8~m8bctMT^FrgT`1|K%@r`Xs)x?h@wOXi5iHG5^V;8Me2ILq^k8T zJod#~gUz9YuQ3pggc?LW9*?qdu84&3Louohp2c!SAQ%j_C6oy@pdua*CE}%tP&~1s zq@``8C_-gXqx>Da$evDQTZD=H&AJknna`BIKvR9P7uIvqE`S8T?xys(J>|$k$m0hmvbIRUfDQ=bP0oMbr2V4)h9&kP2dcgI7 z>jBpTt_NHXxE^plaF-rfxU{eikKSTorOsF3fnc*9Y--lGw+CVkVqGl1yOJ;2iECx|s* zbxs0S1J>GxGZWxiV7y$9wZ_Qm$nZit(MZ+=77GRBJZ-@7kUeJyu{@PwuPzU1EMT{N zNR|k#XEmTa5|OC{Wj3#J@YN2!*1=zM@U0FWbns>ef78J`9ejs_f8gLL2k&w4 zJr2It!Rap?A!h#D!S~QS6rGEVx3u#8G2gk)N5+wod>2pe^4+m|?_J4rt-I0j;a>sM zud^<%^OUAcOmlU5XS zlQ(>MedVsNiiXINkX553Z!n`RNWp}WSN-EaVu8df1criI3D@WQysyLVh3EVIe7-+E z@AE!C-u%kZ71@WBiroA+$}TCn_?nbD`rFqO8-aoo6`~%VXHIj!buY75pq*J>K4{w)^G^X5;EjRw=00^NICsK&$S z)a+#;^f?=l`ktkn1xx=# zzcqHwZM%ZnNm+Zn;lgb7k4T!vLGHPT0?jn`Q8HXJz(>Jd2!!@5a3+N%u{L;)cfaGTgO3wxuvnW#N3r%} zX%DWH?y$5+r2RzNW6~a%c39dI(talGNmv{oyLt)0%WcKlS{f~X;nh_LUd`PbOv!t|wr#qd|lgu=*-aZ$v1@6;RsooT4-ei{QPG+_-+YFY{wB0hhDnECD+%<(SwEOen8>V8_3$!Kn&cG%&Dz}3x5+!_l2~U;q_e=Pm68=#M oKk$D}@5YzVc)XGB#M@~7<4toD@AV`))0y2{JGXWx6FOe^AGf8S5dZ)H diff --git a/avatarServer.c b/avatarServer.c index 8c6747d..26a6a32 100644 --- a/avatarServer.c +++ b/avatarServer.c @@ -5,6 +5,7 @@ #include #include #include +#include #define PORT 8080 @@ -16,6 +17,7 @@ int main(int argc, char const *argv[]) int addrlen = sizeof(address); char buffer[1024]; char *overMessage = "over"; + srand(time(NULL)); // Creating socket file descriptor if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == 0) @@ -54,12 +56,16 @@ int main(int argc, char const *argv[]) { return -1; } + int start = clock(); while ((read_avatar = read(avatar_fd, buffer, sizeof(buffer))) > 0) { printf("%d\n", read_avatar); send(new_socket, buffer, sizeof(buffer), 0); } send(new_socket, overMessage, sizeof(overMessage), 0); + int stop = clock(); + + printf("%f", ((double)stop - start) / CLOCKS_PER_SEC); close(server_fd); close(new_socket); diff --git a/server.c b/server.c index ce17cc7..809267b 100644 --- a/server.c +++ b/server.c @@ -7,6 +7,7 @@ #include #include #include +#include typedef struct { @@ -68,6 +69,14 @@ int main(void) myAddrForClients[0].sin_addr.s_addr = INADDR_ANY; myAddrForClients[1].sin_addr.s_addr = INADDR_ANY; + pthread_t video_thread; + if (pthread_create(&video_thread, NULL, videoHandler, NULL) < 0) + { + printf("Error"); + perror('video_thread'); + return -1; + }; + for (i = 0; i < 2; i++) { if ((sock[i] = socket(AF_INET, SOCK_DGRAM, 0)) < 0) @@ -192,12 +201,15 @@ void Error(int err) void *videoHandler() { - + printf("video_handler\n"); char video_buffer[1024]; + struct stat *movieInfo; int counter = 0; //Counts users that request video data int VideoSocketTCP; int new_socket; + int read_movie; struct sockaddr_in video_address_tcp; + int addrlen = sizeof(video_address_tcp); if ((VideoSocketTCP = socket(AF_INET, SOCK_STREAM, 0)) < 0) { @@ -223,11 +235,20 @@ void *videoHandler() while (counter < 2) { if ((new_socket = accept(VideoSocketTCP, (struct sockaddr *)&video_address_tcp, - sizeof(video_address_tcp))) < 0) + (socklen_t)&addrlen) < 0)) { perror("accept"); return -1; } + + int movie_open = open("assets/test3.mp4", O_RDONLY); + int movie_file_stat = fstat(movie_open, movieInfo); + send(new_socket, &movieInfo->st_size, sizeof(movieInfo->st_size), 0); + while ((read_movie = read(movie_open, video_buffer, sizeof(video_buffer))) > 0) + { + send(new_socket, video_buffer, sizeof(video_buffer), 0); + } + counter++; } close(VideoSocketTCP); From 6e8b1c95c1461f76c1af8893c98a3886efbaaffa Mon Sep 17 00:00:00 2001 From: Michal Starski Date: Thu, 29 Nov 2018 17:15:56 +0100 Subject: [PATCH 9/9] working server --- server.c | 42 +++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/server.c b/server.c index 809267b..19e0172 100644 --- a/server.c +++ b/server.c @@ -8,6 +8,7 @@ #include #include #include +#include typedef struct { @@ -40,6 +41,7 @@ typedef struct void Error(int err); void *dataProcessHandler(void *data); +void *videoHandler(void *arg); int main(void) { @@ -72,10 +74,9 @@ int main(void) pthread_t video_thread; if (pthread_create(&video_thread, NULL, videoHandler, NULL) < 0) { - printf("Error"); - perror('video_thread'); + perror("video_thread"); return -1; - }; + } for (i = 0; i < 2; i++) { @@ -199,22 +200,22 @@ void Error(int err) printf("Error! Code: %d\n", err); } -void *videoHandler() +void *videoHandler(void *arg) { printf("video_handler\n"); char video_buffer[1024]; - struct stat *movieInfo; + struct stat movieInfo; int counter = 0; //Counts users that request video data int VideoSocketTCP; int new_socket; int read_movie; - struct sockaddr_in video_address_tcp; - int addrlen = sizeof(video_address_tcp); + struct sockaddr_in video_address_tcp, reciever_address; + int addrlen = sizeof(struct sockaddr_in); if ((VideoSocketTCP = socket(AF_INET, SOCK_STREAM, 0)) < 0) { perror("tcp video socket"); - exit(1); + return NULL; } video_address_tcp.sin_family = AF_INET; @@ -225,33 +226,36 @@ void *videoHandler() sizeof(video_address_tcp)) < 0) { perror("bind failed"); - return -1; + return NULL; } if (listen(VideoSocketTCP, 3) < 0) { perror("listen"); - return -1; + return NULL; } - while (counter < 2) + while (1) { - if ((new_socket = accept(VideoSocketTCP, (struct sockaddr *)&video_address_tcp, - (socklen_t)&addrlen) < 0)) + if ((new_socket = accept(VideoSocketTCP, (struct sockaddr *)&reciever_address, + (socklen_t *)&addrlen)) < 0) { perror("accept"); - return -1; + return NULL; } - int movie_open = open("assets/test3.mp4", O_RDONLY); - int movie_file_stat = fstat(movie_open, movieInfo); - send(new_socket, &movieInfo->st_size, sizeof(movieInfo->st_size), 0); + int movie_open = open("assets/test4.mp4", O_RDONLY); + int movie_file_stat = fstat(movie_open, &movieInfo); + + send(new_socket, &movieInfo.st_size, sizeof(movieInfo.st_size), 0); + printf("Size sended: %lld\n", movieInfo.st_size); + while ((read_movie = read(movie_open, video_buffer, sizeof(video_buffer))) > 0) { + printf("%d ", read_movie); send(new_socket, video_buffer, sizeof(video_buffer), 0); } - counter++; } close(VideoSocketTCP); close(new_socket); - return 0; + return NULL; }