From 73dae97938f0fff34a1a453161f7e72e2da0bc69 Mon Sep 17 00:00:00 2001 From: HappyZ Date: Tue, 27 Sep 2016 02:41:24 -0700 Subject: [PATCH] server udp receiver; fix bug in normal tcp at server receiver --- .../UDPReceiver_mobile/Makefile | 21 --- .../UDPReceiver_mobile/UDPReceiver_mobile | Bin 6456 -> 0 bytes offloading_binaries/UDPReceiver_mobile/main.c | 97 -------------- offloading_binaries/UDPReceiver_mobile/main.o | Bin 2024 -> 0 bytes .../server_recv_normaltcp/main.c | 23 +--- .../server_recv_normaludp/Makefile | 18 +++ .../server_recv_normaludp/main.c | 126 ++++++++++++++++++ .../server_m_recv_normaludp | Bin 0 -> 12780 bytes .../server_recv_normaludp | Bin 0 -> 13621 bytes 9 files changed, 148 insertions(+), 137 deletions(-) delete mode 100644 offloading_binaries/UDPReceiver_mobile/Makefile delete mode 100755 offloading_binaries/UDPReceiver_mobile/UDPReceiver_mobile delete mode 100644 offloading_binaries/UDPReceiver_mobile/main.c delete mode 100644 offloading_binaries/UDPReceiver_mobile/main.o create mode 100644 offloading_binaries/server_recv_normaludp/Makefile create mode 100644 offloading_binaries/server_recv_normaludp/main.c create mode 100755 offloading_binaries/server_recv_normaludp/server_m_recv_normaludp create mode 100755 offloading_binaries/server_recv_normaludp/server_recv_normaludp diff --git a/offloading_binaries/UDPReceiver_mobile/Makefile b/offloading_binaries/UDPReceiver_mobile/Makefile deleted file mode 100644 index 7747fa4..0000000 --- a/offloading_binaries/UDPReceiver_mobile/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -#CC = /media/Lucifer/android/lib/android-18-toolchain/bin/arm-linux-androideabi-gcc -CC = arm-linux-androideabi-gcc -CFLAGS = -pie -fPIE -TARGET = UDPReceiver_mobile - -OBJS = $(patsubst %.c, %.o, $(wildcard *.c)) -HEADERS = $(wildcard *.h) - -all: $(TARGET) - -%.o: %.c $(HEADERS) - $(CC) $(CFLAGS) -c $< -o $@ - -.PRECIOUS: $(TARGET) $(OBJS) - -$(TARGET): $(OBJS) - $(CC) $(OBJS) -Wall $(CFLAGS) -o $@ - -clean: - -rm -f *.o - -rm -f $(TARGET) diff --git a/offloading_binaries/UDPReceiver_mobile/UDPReceiver_mobile b/offloading_binaries/UDPReceiver_mobile/UDPReceiver_mobile deleted file mode 100755 index 492c9f72998a1975aceea0b6b655c1f178381230..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6456 zcmeHLQEU{~6@9b2z=9XD5GS|^q7y+|huF&)oOVMf#n=X07;x>41S;)hygS${*1N0O zf!I>iT9B%hYUGcoAFWWmQl%;%k;+FCStw~8DQ!`NRR6V#8g+Ng2$E9Ct@wyqr0qE~ z^PFK)B>K^>`bu~2J@?*s-+Oo7zBg~a*FSVrQ4}F5D%u6nt*8*)kW){%o^{1O~=kbe2(1qu#UhV&d)w%`@NOvifvBr9m^N@7V^dOruDg056od3 z+?xX-#7~9rGa>xt5bg}&eIfip2p6pR7tdLxNm0IFSA=fn4BJ4K zu}Vd+*oK9SCZgCus#2oN6{vu?R`4iA3z#)bfP;j`;u7Qd-1&^SPOx0WMlhdu9J~p< z@I`^uDa1RzT=eDpzP#bfKS4f;#DAtl(i$Z?xJ8MCcPP=xT}pJgLWvIVQKGX?Dbe|T zN^~5nbvm)yytAb?SBtOw+L_vcLHus6p?omgn7aRtBlU7Xp9ttL2lUeceK?>G1oXoJ zJsr?B>SA~~ez^1F_{_U;t+}@jdFSlnydwrWKR&I_JF#n58p)*-jl|+yZAhDUBI?!K z1Ic-(Rc&$l;E!roZzr`D=OBDa^6KqGvc-*w!ygkrYD5t)lGWu_?Rew2&E{WYOUE1H zhwt9G`84X)Y&KWG_rRZm?}HIrPatnXu&=qA5OcNb&E_Ywh(Ap~#>FvR{^&#_jd4W| z9B;(5-o{-Kb)>$Mj5>vV^G+P&nt)6|3az@#aVn6lK5m1&^mVU2bL%uDutS9{!1#ON~C=7-X@0$U8Zg!Z}<71jDI;x&Of z$+5#9K^v^=53!6sS?FS2=W2|74Y3OP`F@}e=8FgNO~KdBe29x+JVLE5zY1G7Y;t~S z%#U`VUiQZF2)Z0!1hEUx_0~D>H0GVwo_3-g)jDPKV6+kKuGXXKB@d^gja>n}>mYpE zrFvu!>Z~4V{7Q>B8rogof4qKu|F`OH+jOb_0pd;7&B_23-4 z1;&Ool*E`11!@*mVZ-=uqW?>s-dH%E%l`9^vp(7tN8$u<44C;))4H+;wL|+3Vgu)iWtHfxq`GnaaJ`!&y61=cFCR)Mt&tX1IuwgPxnY;y7sle{0? z#QQk!2*Y6B1MUH|LT>f>CNS@2?O@(Vd7l5X*(~85ZS@@I{h}QQJntj8YPxrgINI@k zaRJQpe+HQE068!v-wk-*<9(H{{>=LY@HJq(=DK-Q$VK31AnAwd%73AM=J;=kxtO1Q zE`Vn^umJU;AdkZ0Sa0tEwf)%1m!4I-Q|Slc3+g_tt6NL&`ifoIuDo-feqixDlk)0@H zh=R3<;oi#Ux5S6*Qrvy61FLh5yU+LK0OoU_3SrjBqZYS4>*i6y#X^;MtBYA%k2brQ z_4O$6z`dU1V}BjIjJmW@d#PssB9XYrL-O0rt3ED6vOcPhUx6fGiIm7z@fxK3hN48ah%3PSACZ*E zV{TrqBab$SpGy^z|D|7oSuf_>iW~fUkgTtV6JiON_4ja#_zN)WDgA!~o&k8%{cpy_ zKY%4Me^UZT;`PdB2I7_w-WI~!LwIKh?+W3L5bh#Yy*~LJB^|6ZVja<&sjpFpGUMQ8yV@CEoKB9P^ zVe|9~(M#q-RJ!b@b?He@4&r z92x4@LtlD^NBRd(4rcV8k&&J=I=vxy6gc4R&72z1hXzM8h~)&(;D7S5NTjgi@N1NA zSe7v@QbGM3fVAT)l`T@^CH!Pdlapo%vPdx+Hb2#P@dA1%^CGk$tfq$Z5Ygp2sBMXEA^ zEVeNQP0Hy>7h5IwqgcxQ_14p){9Z&5mmGJ>;P+J7mOj$Yz&x`U$McI^gU-J$WB7mL z9#aI<#yFm9WS(o1WWHa(z;lstGx#A7`53~@$DH2<^BiCt&sQ?fS7H)lc-{?zWgO3C zGHv0w3~U?&&tZ9f%|e&Nd?fZEdU{s*v(<9{;FFB|H~FB4pa1{> diff --git a/offloading_binaries/UDPReceiver_mobile/main.c b/offloading_binaries/UDPReceiver_mobile/main.c deleted file mode 100644 index 3d83642..0000000 --- a/offloading_binaries/UDPReceiver_mobile/main.c +++ /dev/null @@ -1,97 +0,0 @@ -/* - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define ETH_P_IP 0x0800 /* Internet Protocol packet */ -#define ETH_ALEN 6 /* from */ -#define ETH_P_ALL 0x0003 - -#define MY_DEST_MAC0 0xba -#define MY_DEST_MAC1 0xf6 -#define MY_DEST_MAC2 0xb1 -#define MY_DEST_MAC3 0x71 -#define MY_DEST_MAC4 0x09 -#define MY_DEST_MAC5 0x64 - -#define DEFAULT_IF "wlan0" -#define BUF_SIZ 8192 - -int main(int argc, char *argv[]) -{ - int slotLength = 10000; // in microseconds - int quota = 1000000000; // Bytes per slot, default 1GB/slot - int sentInSlot = 0, slot = 1; - double elapsedTime; - - struct iovec iov; - int sockfd, listenfd; - struct ifreq if_idx; - struct ifreq if_mac; - int tx_len = 0; - char sendbuf[BUF_SIZ]; - struct ether_header *eh = (struct ether_header *) sendbuf; - struct iphdr *iph = (struct iphdr *) (sendbuf + sizeof(struct ether_header)); - struct sockaddr_ll socket_address; - char ifName[IFNAMSIZ]; - int i, j, ret, sendsize=1488, packet_num=1000000000, offset = 0, port; - int fd; /* file descriptor for file to send */ - struct sockaddr_in servaddr,cliaddr; - socklen_t clilen; - struct timeval t_start,t_end,t_now; - - signal(SIGPIPE, SIG_IGN); - - if (argc > 1) - port = atoi(argv[1]); - else - { - printf("Usage: TCPServer port rate"); - exit(1); - } - - if (argc > 2) - packet_num = atoi(argv[2]); - - - listenfd = socket(AF_INET, SOCK_DGRAM, 0); - - - bzero(&servaddr,sizeof(servaddr)); - servaddr.sin_family = AF_INET; - servaddr.sin_addr.s_addr = htonl(INADDR_ANY); - servaddr.sin_port = htons(port); - bind(listenfd, (struct sockaddr *)&servaddr, sizeof(servaddr)); -// listen(listenfd, 1); - - for(;;) - { - clilen=sizeof(cliaddr); - ret = recvfrom(listenfd,sendbuf, 4096, 0, (struct sockaddr *)&cliaddr, &clilen); -// sockfd = accept(listenfd,(struct sockaddr *)&cliaddr, &clilen); - printf("Accepted.\n"); - - } - - close(fd); - - return 0; -} diff --git a/offloading_binaries/UDPReceiver_mobile/main.o b/offloading_binaries/UDPReceiver_mobile/main.o deleted file mode 100644 index 1cdaf9b6594e28e2b8b575e5d4d4e2585be55805..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2024 zcma)7Piz!b82{eRZe47Fr4*^s=p?N&ly)+dRn}4sWrL7Fkv}CdF~rR74zQuSvzZwP zJ!#rA@t`MT!W=w!@W8J|gqd{?B8PhO8iPh-w1eo({2#^pcf-xcD`D-?N?2Gt8y1av_>7cD zuD2>mw6<_BDjTEG4d57%48LCi3gAS_CxIL9CH@>^D#v#jo1qHX)%X4W3~&muG$6;C z1MVchFDicjpTXcyx%V?;ZzSk)e<#teQnm$I5wXblB2vf?*xsPgVZQ8BfX^=Yl!%@_ zIC3vijL)A)TY-JDdvLsRE}q8mU{^psq$c)N$mIEII3LSN-Arj9s; zhI7}91CcW42aJOyB~+?@pr{)OuPNblhEFd+XKVz8S=3oQ8GdgRA_IO8kDd)49{o6o zeQSO&t@$yJeVJn_65&5wr!pDuhvO%M>=~qhS=0{x+=mmW>!h*0N52mSPb&v;QGfdC_%FD`7v!b>ZxmNt z^SZUDuGTMHww&9RqxNjaQytT@h?bj8tLIrQo&8VO>x-&(`uvqcYE^$%T`-PRjoQL7 zRqHvHW35@HYaOEHSy-Bu*=Uncu`Ip4dWuGhWwAqy7bnC%v0s@KuZq_SuaA)Ku6I1M z0rZ>%Z^#wm>7I4RBfVvMCg}~=CEc+T(zH7rs|#J%_ADI<&AXo2yh-}| zh3FfgfxVYSHHK<9&Y{kY IA$z{>znK)AGXMYp diff --git a/offloading_binaries/server_recv_normaltcp/main.c b/offloading_binaries/server_recv_normaltcp/main.c index fdc5a54..e55d0e6 100644 --- a/offloading_binaries/server_recv_normaltcp/main.c +++ b/offloading_binaries/server_recv_normaltcp/main.c @@ -1,6 +1,6 @@ /* * Initial commit by Yibo @ Jul. 28, 2015 - * Last update by Yanzi @ Sept. 26, 2016 + * Last update by Yanzi @ Sept. 27, 2016 */ #include @@ -21,26 +21,9 @@ #include #include #include -#include #define BUF_SIZ 65536 -char isNumber(char number[]) -{ - int i = 0; - - //checking for negative numbers - if (number[0] == '-') - i = 1; - for (; number[i] != 0; i++) - { - //if (number[i] > '9' || number[i] < '0') - if (!isdigit(number[i])) - return 0; - } - return 1; -} - int main(int argc, char *argv[]) { // defaults @@ -71,7 +54,7 @@ int main(int argc, char *argv[]) port = atoi(argv[1]); if (argc > 2) - listenOnce = 1; + listenOnce = atoi(argv[2]); // listen to socket listenfd = socket(AF_INET, SOCK_STREAM, 0); @@ -145,5 +128,7 @@ int main(int argc, char *argv[]) break; } + close(listenfd); + return 0; } diff --git a/offloading_binaries/server_recv_normaludp/Makefile b/offloading_binaries/server_recv_normaludp/Makefile new file mode 100644 index 0000000..03a061e --- /dev/null +++ b/offloading_binaries/server_recv_normaludp/Makefile @@ -0,0 +1,18 @@ +#CC = /media/Lucifer/android/lib/android-18-toolchain/bin/arm-linux-androideabi-gcc +CC1 = arm-linux-androideabi-gcc +CC2 = gcc +CFLAGS = -pie -fPIE +TARGET1 = server_m_recv_normaludp +TARGET2 = server_recv_normaludp + +all: $(TARGET1) $(TARGET2) + +$(TARGET1): main.c + $(CC1) main.c -Wall $(CFLAGS) -o $@ + +$(TARGET2): main.c + $(CC2) main.c -Wall $(CFLAGS) -o $@ + +clean: + -rm -f $(TARGET1) + -rm -f $(TARGET2) diff --git a/offloading_binaries/server_recv_normaludp/main.c b/offloading_binaries/server_recv_normaludp/main.c new file mode 100644 index 0000000..e07d61d --- /dev/null +++ b/offloading_binaries/server_recv_normaludp/main.c @@ -0,0 +1,126 @@ +/* + * Initial commit by Yibo @ Jul. 28, 2015 + * Last update by Yanzi @ Sept. 27, 2016 + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define BUF_SIZ 65536 + +int main(int argc, char *argv[]) +{ + // defaults + uint total_bytes_recv = 0; + // for timing + double elapsedTime; + struct timeval t_start, t_end; + // for socket + int fd = 0; // file descriptor of file to write (receive) + int port; + int recvsize = 4096; + int listenfd; // fd + char recvbuf[BUF_SIZ]; + struct sockaddr_in servaddr, cliaddr; + socklen_t clilen; + // for misc + int ret; + + signal(SIGPIPE, SIG_IGN); + + if (argc < 2) + { + printf("Usage: %s <[optional] filepath>\n", argv[0]); + exit(0); + } + + port = atoi(argv[1]); + + // listen to socket + listenfd = socket(AF_INET, SOCK_DGRAM, 0); + // bind socket and listen + bzero(&servaddr, sizeof(servaddr)); + servaddr.sin_family = AF_INET; + servaddr.sin_addr.s_addr = htonl(INADDR_ANY); + servaddr.sin_port = htons(port); + bind(listenfd, (struct sockaddr *)&servaddr, sizeof(servaddr)); + + // infinity loop to listen + printf("Waiting on port %d...\n", port); + // clear total_bytes_recv to 0 + total_bytes_recv = 0; + + // if instrument to write to a file + if (argc > 2) + { + fd = open(argv[2], O_WRONLY | O_CREAT | O_TRUNC); + if (fd == -1) { + fprintf(stderr, "! Unable to open file %s.\n", argv[2]); + close(listenfd); + exit(1); + } + } + + // start timing + gettimeofday(&t_start, NULL); + + // start receiving + for (;;) + { + clilen = sizeof(cliaddr); + + // wait for one client and accept it once found + ret = recvfrom(listenfd, recvbuf, recvsize, 0, (struct sockaddr *)&cliaddr, &clilen); + printf("Accepted client at %s with %d len msg\n", inet_ntoa(cliaddr.sin_addr), ret); + + if (ret <= 0) + { + if (errno == 0) + break; + fprintf(stderr, "! Fail to recv: ret:%d, err:%d; quiting..\n", ret, errno); + exit(1); + } + + // a "code" to indicate UDP is done + // printf("%d %d %d", (recvbuf[0] == '='), (recvbuf[1] == '?'), (recvbuf[0] == '!')); + if ((recvbuf[0] == '=') && (recvbuf[1] == '?') && (recvbuf[2] == '!')) + break; + + if (argc > 2) + write(fd, recvbuf, ret); + + total_bytes_recv += ret; + // printf("total_bytes_recv %d\n", total_bytes_recv); + + } + + if (argc > 2) + close(fd); + + // end timing + gettimeofday(&t_end, NULL); + elapsedTime = (t_end.tv_sec - t_start.tv_sec) + (t_end.tv_usec - t_start.tv_usec) / 1000000.0; + printf( + "recv(bytes):%d\nduration(s):%lf\nthroughput(bps):%lf\n", + total_bytes_recv, elapsedTime, total_bytes_recv * 8 / elapsedTime); + + close(listenfd); + + return 0; +} diff --git a/offloading_binaries/server_recv_normaludp/server_m_recv_normaludp b/offloading_binaries/server_recv_normaludp/server_m_recv_normaludp new file mode 100755 index 0000000000000000000000000000000000000000..14f4767af775e75ef8811c6d0b087eecf3bbac96 GIT binary patch literal 12780 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 KbeP~d#s3BJrvgO) literal 0 HcmV?d00001 diff --git a/offloading_binaries/server_recv_normaludp/server_recv_normaludp b/offloading_binaries/server_recv_normaludp/server_recv_normaludp new file mode 100755 index 0000000000000000000000000000000000000000..7bdb2ef63caa3845aaf894c41dfdc52236e7c23d GIT binary patch literal 13621 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 VJ$c<@L5|c(g?G0&+4pYjzX2TsGd}