diff --git a/server b/server index ffd3c5e..fb9d495 100755 Binary files a/server and b/server differ 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); } +