| | |
| | | |
| | | } |
| | | |
| | | |
| | | void * bus_server; |
| | | |
| | | void *bus_handler(void *sockt) { |
| | | // pthread_detach(pthread_self()); |
| | | |
| | | char action[512]; |
| | | while ( true) { |
| | | printf("Input action: Close?\n"); |
| | | if(scanf("%s",action) < 1) { |
| | | printf("Invalide action\n"); |
| | | continue; |
| | | } |
| | | |
| | | if(strcmp(action, "close") == 0) { |
| | | bus_server_socket_wrapper_close(sockt); |
| | | break; |
| | | } else { |
| | | printf("Invalide action\n"); |
| | | } |
| | | } |
| | | |
| | | static void stop_bus_handler(int sig) { |
| | | bus_server_socket_wrapper_stop(bus_server); |
| | | } |
| | | |
| | | |
| | | |
| | | void start_bus_server(argument_t &arg) { |
| | | printf("Start bus server\n"); |
| | | void * server_socket = bus_server_socket_wrapper_open(); |
| | | pthread_t tid; |
| | | // 创建一个线程,可以关闭bus |
| | | if(arg.interactive) |
| | | pthread_create(&tid, NULL, bus_handler, server_socket); |
| | | bus_server = bus_server_socket_wrapper_open(); |
| | | |
| | | signal(SIGINT, stop_bus_handler); |
| | | signal(SIGTERM, stop_bus_handler); |
| | | |
| | | if(bus_server_socket_wrapper_start_bus(server_socket) != 0) { |
| | | if(bus_server_socket_wrapper_start_bus(bus_server) != 0) { |
| | | printf("start bus failed\n"); |
| | | exit(1); |
| | | } |
| | | |
| | | if (pthread_join(tid, NULL) != 0) { |
| | | perror(" pthread_join"); |
| | | } |
| | | bus_server_socket_wrapper_close(bus_server); |
| | | } |
| | | |
| | | void *serverSockt; |
| | |
| | | |
| | | } |
| | | |
| | | //rv = net_mod_socket_recvandsend_timeout(serverSockt, _recvandsend_callback_ , 0, 2000000, NULL ); |
| | | // rv = net_mod_socket_recvandsend_timeout(serverSockt, _recvandsend_callback_ , 0, 2000000, NULL ); |
| | | net_mod_socket_close(serverSockt); |
| | | logger->debug("stopted\n"); |
| | | |
| | | // while ( (rv = net_mod_socket_recvfrom(ser, &recvbuf, &size, &key) ) == 0) { |
| | | // // printf( "server: RECEIVED REQUEST FROM %d NAME %s\n", key, recvbuf); |
| | | // sprintf(sendbuf, "%d RECEIVED %s", net_mod_socket_get_key(ser), (char *)recvbuf); |
| | |
| | | net_node_t *node_arr; |
| | | int node_arr_size = parse_node_list(targ->nodelist, &node_arr); |
| | | |
| | | char *topic = "news"; |
| | | const char *topic = "news"; |
| | | // char filename[512]; |
| | | // sprintf(filename, "test%d.tmp", targ->id); |
| | | // FILE *fp = NULL; |