From fb8aef5a4908a50d415cf5ed33a10699fdfa9c98 Mon Sep 17 00:00:00 2001 From: wangzhengquan <wangzhengquan85@126.com> Date: 星期二, 22 十二月 2020 11:06:15 +0800 Subject: [PATCH] udpate --- test_socket/dgram_mod_req_rep.c | 51 +++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 37 insertions(+), 14 deletions(-) diff --git a/test_socket/dgram_mod_req_rep.c b/test_socket/dgram_mod_req_rep.c index 119b497..39dbac1 100644 --- a/test_socket/dgram_mod_req_rep.c +++ b/test_socket/dgram_mod_req_rep.c @@ -1,5 +1,5 @@ #include "dgram_mod_socket.h" -#include "shm_mm.h" +#include "shm_mm_wraper.h" #include "usg_common.h" #include "lock_free_queue.h" @@ -19,8 +19,8 @@ }Targ; -LockFreeQueue<task_t, DM_Allocator> task_queue(100); - +LockFreeQueue<task_t, DM_Allocator> task_queue(128); +void *client; void *worker(void *socket) { pthread_detach(pthread_self()); @@ -44,7 +44,7 @@ } void server(int port) { - void *socket = dgram_mod_open_socket(REQ_REP); + void *socket = dgram_mod_open_socket(); dgram_mod_bind(socket, port); initThreadPool(socket); @@ -57,14 +57,28 @@ dgram_mod_close_socket(socket); } -void client(int port) { - void *socket = dgram_mod_open_socket(REQ_REP); +void startClient(int port) { + void *socket = dgram_mod_open_socket(); int size; void *recvbuf; char sendbuf[512]; while (true) { printf("request: "); scanf("%s", sendbuf); + dgram_mod_sendandrecv(socket, sendbuf, strlen(sendbuf) + 1, port, &recvbuf, &size); + printf("reply: %s\n", (char *)recvbuf); + free(recvbuf); + } + dgram_mod_close_socket(socket); +} + +void client2(int port) { + void *socket = dgram_mod_open_socket(); + int size; + void *recvbuf; + char sendbuf[512]; + while (true) { + sprintf(sendbuf, "hello\n" ); dgram_mod_sendandrecv(socket, sendbuf, strlen(sendbuf) + 1, port, &recvbuf, &size); printf("reply: %s\n", (char *)recvbuf); free(recvbuf); @@ -80,10 +94,10 @@ char sendbuf[512]; int scale = 100000; int i; - void *socket = dgram_mod_open_socket(REQ_REP); + char filename[512]; - sprintf(filename, "test%d.txt", targ->id); + sprintf(filename, "test%d.tmp", targ->id); FILE *fp = NULL; fp = fopen(filename, "w+"); @@ -92,12 +106,12 @@ for (i = 0; i < scale; i++) { sprintf(sendbuf, "thread(%d) %d", targ->id, i); fprintf(fp, "requst:%s\n", sendbuf); - dgram_mod_sendandrecv(socket, sendbuf, strlen(sendbuf) + 1, port, &recvbuf, &recvsize); + dgram_mod_sendandrecv(client, sendbuf, strlen(sendbuf) + 1, port, &recvbuf, &recvsize); fprintf(fp, "reply: %s\n", (char *)recvbuf); free(recvbuf); } fclose(fp); - dgram_mod_close_socket(socket); + return (void *)i; } @@ -110,6 +124,9 @@ char sendbuf[512]; struct timeval start; + + client = dgram_mod_open_socket(); + gettimeofday(&start, NULL); for (i = 0; i < processors; i++) { targs[i].port = port; @@ -132,11 +149,12 @@ long diffsec = (long) (difftime/1000000); long diffmsec = difftime - diffsec*1000000; printf("cost: %ld sec: %ld msc\n", diffsec, diffmsec); + dgram_mod_close_socket(client); } int main(int argc, char *argv[]) { - shm_init(512); + shm_mm_wrapper_init(512); int port; if (argc < 3) { fprintf(stderr, "Usage: reqrep %s|%s <PORT> ...\n", "server", "client"); @@ -146,11 +164,16 @@ port = atoi(argv[2]); if (strcmp("server", argv[1]) == 0) { + // int temp = shm_mm_wrapper_alloc_key(); + // printf("tmp=%d\n", temp); server(port); - } - - if (strcmp("client", argv[1]) == 0) + } else if (strcmp("mclient", argv[1]) == 0) { startClients(port); + } else if (strcmp("client", argv[1]) == 0) { + startClient(port); + } else { + printf("input invalidate arguments\n"); + } return 0; -- Gitblit v1.8.0