wangzhengquan
2020-12-22 26ed48c4e616014ee760fd13d13dbdc8539c34e3
test_net_socket/test_net_mod_socket.c
@@ -15,6 +15,7 @@
}Targ;
struct argument_t {
  bool interactive;
  char *fun;
  int port;
  int key;
@@ -54,13 +55,16 @@
  }  
}
void start_net_proxy(int port) {
void start_net_proxy(argument_t &arg) {
  pthread_t tid;
  printf("Start net proxy\n");
   void *serverSocket  = net_mod_server_socket_open(port);
   void *serverSocket  = net_mod_server_socket_open(arg.port);
   // 创建一个线程,可以关闭server
  pthread_create(&tid, NULL, proxy_server_handler, serverSocket);
  if(arg.interactive) {
    pthread_create(&tid, NULL, proxy_server_handler, serverSocket);
  }
   if(net_mod_server_socket_start(serverSocket) != 0) {
      err_exit(errno, "net_mod_server_socket_start");
   }
@@ -103,12 +107,14 @@
void start_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
  // pthread_create(&tid, NULL, bus_handler, server_socket);
  if(arg.interactive)
    pthread_create(&tid, NULL, bus_handler, server_socket);
  if(bus_server_socket_wrapper_start_bus(server_socket) != 0) {
    printf("start bus failed\n");
    exit(1);
@@ -152,12 +158,12 @@
  //192.168.5.10:5000:11, 192.168.5.22:5000:11, 192.168.5.104:5000:11
  net_node_t *node_arr;
  int node_arr_size = parse_node_list(sendlist, &node_arr);
   // print_node_list(node_arr, node_arr_size);
   print_node_list(node_arr, node_arr_size);
  //192.168.5.10:5000:8, 192.168.5.22:5000:8, 192.168.5.104:5000:8
  net_node_t *pub_node_arr;
   int pub_node_arr_size = parse_node_list(publist, &pub_node_arr);
  // print_node_list(pub_node_arr, pub_node_arr_size);
  print_node_list(pub_node_arr, pub_node_arr_size);
   
  while (true) {
    //printf("Usage: pub <topic> [content] or sub <topic>\n");
@@ -405,12 +411,12 @@
      usage(argv[0]);
      exit(1);
    }
    start_net_proxy(opt.port);
    start_net_proxy(opt);
    
  }
  else if (strcmp("start_bus_server", opt.fun) == 0) {
     
    start_bus_server();
    start_bus_server(opt);
  }
  else if (strcmp("start_reply", opt.fun) == 0) {
    if(opt.key == 0) {
@@ -497,6 +503,7 @@
  argument_t mopt = {};
  
  // mopt.volume_list_size = 0;
  mopt.interactive = false;
  opterr = 0;
@@ -508,6 +515,7 @@
    {"fun",  required_argument, 0, 'f'},
    {"key",  required_argument, 0, 'k'},
    {"port",  required_argument, 0, 'p'},
    {"interactive",  no_argument, 0, 'i'},
    {"sendlist",  required_argument, (int *)mopt.sendlist, 0},
    {"publist",  required_argument, (int *)mopt.publist, 0},
    {0, 0, 0, 0}
@@ -518,7 +526,7 @@
  {
    
    c = getopt_long (argc, argv, "+f:k:p:", long_options, &option_index);
    c = getopt_long (argc, argv, "+f:k:p:i", long_options, &option_index);
    /* Detect the end of the options. */
    if (c == -1)
@@ -552,6 +560,10 @@
    case 'k':
      mopt.key = atoi(optarg);
      break;
    case 'i':
      mopt.interactive = true;
      break;
    case 'p':
@@ -608,7 +620,8 @@
  net_node_t *node_arr = (net_node_t *) calloc(entry_arr_len, sizeof(net_node_t));
  for(i = 0; i < entry_arr_len; i++) {
    property_arr_len = str_split(entry_arr[i], ":", &property_arr);
  // printf("%s, %s, %s\n", property_arr[0], property_arr[1], property_arr[2]);
   printf("=====%s, %s, %s\n", property_arr[0], property_arr[1], property_arr[2]);
    node_arr[i] = {trim(property_arr[0], 0), atoi(property_arr[1]), 0};
   
    free(property_arr[1]);
@@ -628,7 +641,7 @@
void print_node_list(net_node_t *node_arr, int len) {
  printf("============node list begin==========\n");
  for(int i = 0; i < len; i++) {
    printf("%s,%d,%d,\n", node_arr[i].host,  node_arr[i].port,  node_arr[i].key);
    printf("host=%s, port=%d, key=%d \n", node_arr[i].host,  node_arr[i].port,  node_arr[i].key);
  }
  printf("============node list end==========\n");
}