From 0f15d510ce8c06a2e18703ca7eb4a38a5ac077f5 Mon Sep 17 00:00:00 2001 From: Michal Starski Date: Thu, 29 Nov 2018 16:04:37 +0100 Subject: [PATCH] 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);