From aa2f3b2a9968bb4928463bdae05fb026d16b60bb Mon Sep 17 00:00:00 2001 From: wangzhengquan <wangzhengquan85@126.com> Date: 星期五, 04 十二月 2020 19:07:01 +0800 Subject: [PATCH] 固定bus key --- test_net_socket/test_net_mod_socket.c | 113 ++++++++++++++++++++++++++++++++------------------------ 1 files changed, 64 insertions(+), 49 deletions(-) diff --git a/test_net_socket/test_net_mod_socket.c b/test_net_socket/test_net_mod_socket.c index 8dafcfc..08f3589 100644 --- a/test_net_socket/test_net_mod_socket.c +++ b/test_net_socket/test_net_mod_socket.c @@ -1,8 +1,12 @@ #include "net_mod_server_socket_wrapper.h" #include "net_mod_socket_wrapper.h" +#include "bus_server_socket_wrapper.h" + #include "shm_mm_wraper.h" #include "usg_common.h" #include <getopt.h> + +#define SCALE 100000 typedef struct Targ { char *nodelist; @@ -25,6 +29,10 @@ int parse_node_list(char *str, net_node_t *node_arr_addr[]) ; void print_node_list(net_node_t *node_arr, int len); + + +void * client; + void start_net_proxy(int port) { printf("Start net proxy\n"); void *serverSocket = net_mod_server_socket_open(port); @@ -46,8 +54,38 @@ } + +void start_bus_server() { + printf("Start bus server\n"); + void * server_socket = bus_server_socket_wrapper_open(); + if(bus_server_socket_wrapper_start_bus(server_socket) != 0) { + printf("start bus failed\n"); + exit(1); + } +} + + + +void start_reply(int key) { + printf("start reply\n"); + void *client = net_mod_socket_open(); + net_mod_socket_bind(client, key); + int size; + void *recvbuf; + char sendbuf[512]; + int rv; + int remote_port; + while ( (rv = net_mod_socket_recvfrom(client, &recvbuf, &size, &remote_port) ) == 0) { + // printf( "server: RECEIVED REQUEST FROM PORT %d NAME %s\n", remote_port, recvbuf); + sprintf(sendbuf, "RECEIVED PORT %d NAME %s", remote_port, recvbuf); + net_mod_socket_sendto(client, sendbuf, strlen(sendbuf) + 1, remote_port); + free(recvbuf); + } +} + + void start_net_client(char *sendlist, char*publist ){ - void * client = net_mod_socket_open(); + client = net_mod_socket_open(); char content[MAXLINE]; char action[512]; char topic[512]; @@ -87,9 +125,8 @@ if (fgets(content, MAXLINE, stdin) != NULL) { // 鏀跺埌娑堟伅鐨勮妭鐐瑰嵆浣挎病鏈夊搴旂殑淇℃伅锛� 涔熻鍥炲涓�涓〃绀烘棤鐨勬秷鎭�,鍚﹀垯浼氫竴鐩寸瓑寰� - n = net_mod_socket_sendandrecv(client, node_arr, node_arr_size, content, - strlen(content), &recv_arr, &recv_arr_size); - printf("send %d nodes\n", n); + n = net_mod_socket_sendandrecv(client, node_arr, node_arr_size, content, strlen(content), &recv_arr, &recv_arr_size); + printf(" %d nodes reply\n", n); for(i=0; i<recv_arr_size; i++) { printf("host:%s, port: %d, key:%d, content: %s\n", recv_arr[i].host, @@ -104,10 +141,10 @@ } } else if(strcmp(action, "desub") == 0) { - printf("Please input buskey and topic!\n"); + printf("Please input topic!\n"); - scanf("%d %s", &buskey, topic); - if (net_mod_socket_desub(client, topic, strlen(topic), buskey) == 0) { + scanf("%s", topic); + if (net_mod_socket_desub(client, topic, strlen(topic)) == 0) { printf("%d Desub success!\n", net_mod_socket_get_key(client)); } else { printf("Desub failture!\n"); @@ -116,11 +153,10 @@ } else if(strcmp(action, "sub") == 0) { - printf("Please input buskey and topic!\n"); - scanf("%d %s",&buskey, topic); + printf("Please input topic!\n"); + scanf("%s",topic); - printf("===%d %s\n",buskey, topic); - if (net_mod_socket_sub(client, topic, strlen(topic), buskey) == 0) { + if (net_mod_socket_sub(client, topic, strlen(topic)) == 0) { printf("%d Sub success!\n", net_mod_socket_get_key(client)); } else { printf("Sub failture!\n"); @@ -142,37 +178,9 @@ } -void start_bus_server(int key) { - printf("Start bus server\n"); - void * server_socket = net_mod_socket_open(); - - net_mod_socket_bind(server_socket, key); - - net_mod_socket_start_bus(server_socket); -} - -void start_reply(int key) { - printf("start reply\n"); - void *socket = net_mod_socket_open(); - net_mod_socket_bind(socket, key); - int size; - void *recvbuf; - char sendbuf[512]; - int rv; - int remote_port; - while ( (rv = net_mod_socket_recvfrom(socket, &recvbuf, &size, &remote_port) ) == 0) { - printf( "server: RECEIVED REQUEST FROM PORT %d NAME %s\n", remote_port, recvbuf); - sprintf(sendbuf, "RECEIVED PORT %d NAME %s", remote_port, recvbuf); - net_mod_socket_sendto(socket, sendbuf, strlen(sendbuf) + 1, remote_port); - free(recvbuf); - } -} - - -#define SCALE 100000 void *_run_sendandrecv_(void *arg) { Targ *targ = (Targ *)arg; @@ -187,8 +195,6 @@ int node_arr_size = parse_node_list(targ->nodelist, &node_arr); - void * client = net_mod_socket_open(); - char filename[512]; sprintf(filename, "test%d.tmp", targ->id); FILE *fp = NULL; @@ -215,7 +221,7 @@ total += n; } fclose(fp); - net_mod_socket_close(client); + return (void *)total; } @@ -230,6 +236,7 @@ struct timeval start, end; long total = 0; + client = net_mod_socket_open(); printf("寮�濮嬫祴璇�...\n"); gettimeofday(&start, NULL); for (i = 0; i < processors; i++) { @@ -254,6 +261,7 @@ long diffusec = difftime - diffsec*1000000; fprintf(stderr,"鍙戦�佹暟鐩�: %ld, 鐢ㄦ椂: (%ld sec %ld usec), 骞冲潎: %f\n", total, diffsec, diffusec, difftime/total ); // fflush(stdout); + net_mod_socket_close(client); } @@ -269,7 +277,7 @@ char *topic = "news"; - void * client = net_mod_socket_open(); + // char filename[512]; // sprintf(filename, "test%d.tmp", targ->id); @@ -287,7 +295,7 @@ total += n; } // fclose(fp); - net_mod_socket_close(client); + return (void *)total; } @@ -301,6 +309,7 @@ char sendbuf[512]; struct timeval start, end; long total = 0; + client = net_mod_socket_open(); printf("寮�濮嬫祴璇�...\n"); gettimeofday(&start, NULL); @@ -326,6 +335,7 @@ long diffusec = difftime - diffsec*1000000; fprintf(stderr,"鍙戦�佹暟鐩�: %ld, 鐢ㄦ椂: (%ld sec %ld usec), 骞冲潎: %f\n", total, diffsec, diffusec, difftime/total ); // fflush(stdout); + net_mod_socket_close(client); } @@ -352,7 +362,7 @@ usage(argv[0]); exit(1); } - start_bus_server(opt.key); + start_bus_server(); } else if (strcmp("start_reply", opt.fun) == 0) { if(opt.key == 0) { @@ -547,11 +557,16 @@ 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]); - node_arr[i] = {trim(property_arr[0], 0), atoi(property_arr[1]), atoi(property_arr[2])}; - free(entry_arr[i]); + // 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]); - free(property_arr[2]); + if(property_arr_len == 3) { + node_arr[i].key = atoi(property_arr[2]); + free(property_arr[2]); + } + free(entry_arr[i]); + } *node_arr_addr = node_arr; -- Gitblit v1.8.0