void *network_data(void *arg) { int childlen; struct sockaddr_in childaddr; childlen = sizeof(childaddr); while ( !die ) { printf("### Wait data client\n"); #ifdef WIN32 data_client_socket = accept(data_socket, NULL, NULL); if (data_client_socket == INVALID_SOCKET) { printf("Error on accept() for data, exit data thread. %d\n", WSAGetLastError()); closesocket(data_socket); WSACleanup(); break; } #else data_child = accept(s_data, (struct sockaddr *)&childaddr, (unsigned int *)&childlen); if ( data_child < 0 ) { fprintf(stderr, "Error on accept() for data, exit data thread.\n"); break; } #endif printf("### Got data client\n"); data_connected = 1; send_policy_file(data_child); if ( pthread_create(&data_in_thread, NULL, data_in, NULL) ) { fprintf(stderr, "Error on pthread_create() for data_in\n"); } if ( pthread_create(&data_out_thread, NULL, data_out, NULL) ) { fprintf(stderr, "Error on pthread_create() for data_out\n"); } } return NULL; }
void *network_depth(void *arg) { int childlen; struct sockaddr_in childaddr; childlen = sizeof(childaddr); while ( !die ) { printf("### Wait depth client\n"); depth_child = accept(s_depth, (struct sockaddr *)&childaddr, (unsigned int *)&childlen); if ( network_depth < 0 ) { fprintf(stderr, "Error on accept() for depth, exit depth thread.\n"); break; } printf("### Got depth client\n"); send_policy_file(depth_child); depth_connected = 1; freenect_start_depth(f_dev); } return NULL; }