From fe503f9283d726ad7c7f4c221983429c5f2af0e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konrad=20Pierzy=C5=84ski?= Date: Tue, 20 Nov 2018 14:10:40 +0100 Subject: [PATCH] Hard reset server --- server | Bin 9140 -> 13040 bytes server.c | 143 ++++++++++++++++++++++++------------------------------- 2 files changed, 61 insertions(+), 82 deletions(-) diff --git a/server b/server index ffd3c5ec8346d6924b8a9c7b17e6a4aa8baa8f26..fb9d495f2f5f5d18eb2d09fa4ff62ff241f7508f 100755 GIT binary patch literal 13040 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 literal 9140 zcmeHNZEO_B8J;sHH3qXLO;i#{bD)xvHU*oa;G~Iimw20TIBW+Sm42Y*e0RoFk5sx=q*)`{qNa+D2-$t! z*}e1K^3ndPROv>{%=^s8Gw=J(JG%b{8^7 z*0gr-lj?WW?QPUro?PYdhKP7Rz(7swRCjik50Ufh%iEZZp&NrbGSdi6i--2cNwSiY zFLxV^LDz3+A`;jVmea7x5T$;+b(V=OH@N>Q4pw=7i zj!0a-ALBM3?KvgFP7bTbDrsMvubulfRD_=|NR<*gMa3>MboNU909cj=F`sO4CbHFyybO6`A{O1) z-`lk@xUWA5OlcJ|>G9)DZ!YzG{_7w8`i~D@d*RA^-`a#WH!`iyme5DMOwV(_1>DU*GhXyu0z5#mmc3}|GeaOVm*I53% z-^S#xO8Wovzz!}x;`=W*AcnZU_=`)ZVqB>CZ0eEu`FS!Zn`$abn~Tx|kVfxiY)YN2 z(hWl0;*^s9%&bMEDe38Mfq&|yta_O^rqoQ;lsZ$@omJnyv>WBQOS`k`NlCAsmsP63 zotz-4N-_R{_Hhc%#&aSorpzWBZXPhGS2P>BWS%L;m(i_D1w|&AaS4NT6KQwZ-$TNSg=B{aum3{#mBz*^_@P*O#5GB30%3KRdC7tgU zd6dbl%M#3`Xy(SYNvn$o4w1S%^A}LhbPI3Q?DM1#siI4ZlanqXh1qI!l$zTDB}A$L zt+%xF6wYmlrB4ACj5PHLnobtI2eocVlPsrM1jvm?w?cX z+0=TJ=phl(~phwlXocVU+J3hmpS=>mB+BCYfkc$b1c9Hez zDH6CinxC7W_lYSqkYsKIg~$lQjb7!rK^i2l?od)5EUO$(tt6apRZ^D#C# z&-I~EE}Bps=3;Nn>?hDZTMTXPv1sF` zZ_)dU8+GTgHCA*rE9ptD%Td^*KSAT;G)DZh@g46mE6|6=;OmiQ%ga718e0&JKGy~C zo8WJjPA5sEE}}Hw1rK?8H4Jmc=%Z-Mrs`3W9~R8A#(hKfC)Q5zASF{C0ILaTOQI~H4uGdu~D7e0a>pSxNp&5}nk4`0pAHVQ5$$bAw zdWY;fVSW#lvQ)YE0I@K7zu?J;SHYZ;9-7O1T%)A7&1J6EEIA_|n3KCsbR%sj9nX`O z>$$ObJ?s}l*Yw0SF0zR4RUpQTi6>9i?>bR7e*fiREQKk@F$B-4)j;Bu&rtC&AG(5* zcm=iT6Is02UNdQv(DoWAr=_^V)HlH}Q%OI6n^1o#5@V(cm*MfZpKOuuG9`UhPmE#8 zA>vkF9hYm!C)&0nIAY`67@GF!s_CWI=g=q}DizOx#E5)`sUv2X)=K7AD+lOdIQx67 zP$Vgw*2FXvGxf)as3kdBZ9YbmggQKX5X0x!y$F5g*Nw>XC$c;!%b&_}RF*Hv@?}}R zBFn?F{5eX-e8xSE5WF4p>(-zi?V-lmzk1!mNBk3WMrb+rHNykZ|U*fYz zNa`Z#b&~dyG)B@vl3pR{Rgy^Wp4UnG5u}b#^x06<9ZiJ8_>;{Y3A+a)(YU**p{b#k ztqa!GGVX0{_Nm+59i86oooe%j4YkbI*0!~!^+~t4)7{bb#8$QQVfVV=1Map~cYE7* z32K=djYgtt+)qS;A?mG_zmI8)D3#WTDfwG?Giu6){YMAM2yy%#cj5P~bQREoK%g|` zFpoxEvg?1@^_*ST;Al|)?RLG|uJ5z!2D^UPuAA+;bd8E!@j%4`6%SNAQ1L*;0~HTc zJW%mK#RC-&R6J1eK*a<98xO2lyYjoV(h848SJ(bPpBCup)Al6%(I9&|T0iQcOFMZ< zu65zw7?;|^CcbpYB7X)Z&f+dSfypUit?zz;T${NlpYpg-jJk$SR#b?7$-qeAt11<-l(^@VEm{Ixu}3 z#GQ-0t0rIIhF9J_(|s*mAn(ZWsYu?zu0W0C!L^vYhyHKpxtV6|o_2%n)o!q(n%r_a z03~5ub{=E^m$g_Y#END+jtdc7h+SvY7O{-ig-9*LXdybUJ8_!U*3t2tf3PJSZ+wuk Fe*--3fZhNA diff --git a/server.c b/server.c index 2283afb..76fad71 100644 --- a/server.c +++ b/server.c @@ -1,3 +1,6 @@ +#pragma GCC diagnostic ignored "-Wunused-but-set-variable" +#pragma GCC diagnostic ignored "-Wunused-variable" + #include #include #include @@ -8,45 +11,38 @@ #include #include -typedef struct -{ +typedef struct { int socket; struct sockaddr_in address; } TData; -typedef struct -{ +typedef struct { float x; float y; float z; - float rot_x; - float rot_y; - float rot_z; - float rot_w; } TFloat; -void Error(int err); -void *dataProcessHandler(void *data); +void Error( int err ); +void* dataProcessHandler( void * data ); -int main(void) -{ +int main( void ) { int e = 0; int i = 0; - struct sockaddr_in myAddr; - int sockMain; - int port = 8080; - socklen_t addrLen; + struct sockaddr_in myAddr; + int sockMain; + int port = 8080; + socklen_t addrLen; - int sock[2]; + int sock[2]; struct sockaddr_in myAddrForClients[2]; - struct sockaddr_in clients[2]; + struct sockaddr_in clients[2]; struct sockaddr_in tmp; - myAddr.sin_family = AF_INET; - myAddr.sin_port = htons(port); - myAddr.sin_addr.s_addr = INADDR_ANY; + myAddr.sin_family = AF_INET; + myAddr.sin_port = htons(port); + myAddr.sin_addr.s_addr = INADDR_ANY; myAddrForClients[0].sin_family = AF_INET; myAddrForClients[1].sin_family = AF_INET; @@ -57,60 +53,52 @@ int main(void) myAddrForClients[0].sin_addr.s_addr = INADDR_ANY; myAddrForClients[1].sin_addr.s_addr = INADDR_ANY; - for (i = 0; i < 2; i++) - { - if ((sock[i] = socket(AF_INET, SOCK_DGRAM, 0)) < 0) - { - Error(e++); + for( i = 0; i < 2; i ++ ) { + if( (sock[i] = socket(AF_INET, SOCK_DGRAM, 0)) < 0 ) { + Error( e++ ); return -1; } - while (bind(sock[i], (struct sockaddr *)&myAddrForClients[i], sizeof(struct sockaddr_in)) < 0) - { + while( bind( sock[i], (struct sockaddr*)&myAddrForClients[i], sizeof( struct sockaddr_in) ) < 0 ) { myAddrForClients[i].sin_port = htons(ntohs(myAddrForClients[i].sin_port) + 1); } } - if ((sockMain = socket(AF_INET, SOCK_DGRAM, 0)) < 0) - { - Error(e++); + if( (sockMain = socket(AF_INET, SOCK_DGRAM, 0)) < 0 ) { + Error( e++ ); return -1; } - if (bind(sockMain, (struct sockaddr *)&myAddr, sizeof(struct sockaddr_in)) < 0) - { - Error(e++); - return -1; - } + if( bind( sockMain, (struct sockaddr*)&myAddr, sizeof(struct sockaddr_in) ) < 0 ) { + Error( e++ ); + return -1; + } - printf("Server running on port 8080\n"); - addrLen = sizeof(struct sockaddr_in); - int flag = 2; - int recvLen, sendLen; + addrLen = sizeof( struct sockaddr_in ); + + int flag = 2; + int recvLen, sendLen; char buf[5]; - memset(buf, 0, sizeof(buf)); + memset( buf, 0 , sizeof(buf)); - while (flag) - { - recvLen = recvfrom(sockMain, buf, 5, 0, (struct sockaddr *)&tmp, &addrLen); + while( flag ) { + recvLen = recvfrom( sockMain, buf, 5, 0, (struct sockaddr*)&tmp, &addrLen ); - if (buf[0] != 'U' || buf[1] != 'N' || buf[2] != 'I' || buf[3] != 'T' || buf[4] != 'Y') - { - Error(e++); + if( buf[0] != 'U' || buf[1] != 'N' || buf[2] != 'I' || buf[3] != 'T' || buf[4] != 'Y' ) { + Error( e++ ); return -1; } - clients[2 - flag--] = tmp; - } + clients[2-flag--] = tmp; + } - for (i = 0; i < (sizeof(myAddrForClients) / sizeof(myAddrForClients[0])); i++) - { + for( i = 0; i < (sizeof(myAddrForClients) / sizeof(myAddrForClients[0])); i++ ) { char port2char[8]; - sprintf(port2char, "%d\r\n", ntohs(myAddrForClients[i].sin_port)); - sendLen = sendto(sockMain, port2char, sizeof(port2char), 0, (struct sockaddr *)&clients[i], sizeof(clients[i])); + sprintf(port2char, "%d\r\n", ntohs(myAddrForClients[i].sin_port) ); + sendLen = sendto(sockMain, port2char, sizeof(port2char), 0, (struct sockaddr*)&clients[i], sizeof( clients[i]) ); } //Unity's got port number to connect @@ -120,28 +108,23 @@ int main(void) pthread_t handlers[2]; TData data[2]; - int size = (sizeof(handlers) / sizeof(handlers[0])); + int size = ( sizeof(handlers) / sizeof(handlers[0]) ); - for (i = 0; i < size; i++) - { + for( i = 0; i < size; i++ ) { data[i].socket = sock[i]; - data[i].address = clients[size - 1 - i]; + data[i].address = clients[size-1-i]; } - for (i = 0; i < size; i++) - { - if (pthread_create(&handlers[i], NULL, dataProcessHandler, &data[i])) - { - Error(e++); + for( i = 0; i < size; i++ ) { + if( pthread_create(&handlers[i], NULL, dataProcessHandler, &data[i] ) ) { + Error( e++ ); return -1; } } - for (i = 0; i < size; i++) - { - if (pthread_join(handlers[i], NULL)) - { - Error(e++); + for( i = 0; i < size; i++ ) { + if( pthread_join( handlers[i], NULL )) { + Error( e++ ); return -1; } } @@ -150,34 +133,30 @@ int main(void) close(sock[0]); close(sock[1]); - return 0; + return 0; } -void *dataProcessHandler(void *data) -{ +void* dataProcessHandler( void * data ) { - TData *info = (TData *)data; + TData *info = (TData*)data; TFloat floats; - memset(&floats, 0, sizeof(floats)); + memset(&floats,0,sizeof(floats)); struct sockaddr_in tmp; socklen_t addrLen; printf("HANDLER STARTED..\n"); - printf("LOOKING AT SOCKET: %d, ON PORT: %d\n", info->socket, ntohs(info->address.sin_port)); + printf("LOOKING AT SOCKET: %d, ON PORT: %d\n", info->socket, ntohs(info->address.sin_port) ); - while (1) - { - if (recvfrom(info->socket, &floats, 28, 0, (struct sockaddr *)&tmp, &addrLen) != 28) - continue; - // printf("x: %f, y: %f, z: %f, rot_x: %f, rot_y: %f, rot_z: %f, rot_w: %f\n", floats.x, floats.y, floats.z, floats.rot_x, floats.rot_y, floats.rot_z, floats.rot_w); - sendto(info->socket, &floats, 28, 0, (struct sockaddr *)&info->address, sizeof(info->address)); + while( 1 ) { + if( recvfrom( info->socket, &floats, 12, 0, (struct sockaddr*)&tmp, &addrLen) != 12 ) continue; + sendto( info->socket, &floats, 12, 0, (struct sockaddr*)&info->address, sizeof(info->address)); } return NULL; } -void Error(int err) -{ - printf("Error! Code: %d\n", err); +void Error( int err ) { + printf("Error! Code: %d\n", err); } +