From d6a27f15acd08e99841595cece2b3e3e8045491a Mon Sep 17 00:00:00 2001 From: wangzhengquan <wangzhengquan85@126.com> Date: 星期二, 13 十月 2020 18:15:55 +0800 Subject: [PATCH] update --- demo/dgram_mod_req_rep.c | 37 ++++++++++++++++++++++--------------- 1 files changed, 22 insertions(+), 15 deletions(-) diff --git a/demo/dgram_mod_req_rep.c b/demo/dgram_mod_req_rep.c index ceaa18c..b26d61d 100644 --- a/demo/dgram_mod_req_rep.c +++ b/demo/dgram_mod_req_rep.c @@ -1,9 +1,12 @@ +/** + * 閫傚簲浜庢敞鍐� + */ #include "dgram_mod_socket.h" #include "shm_mm.h" #include "usg_common.h" void server(int port) { - void *socket = dgram_mod_open_socket(REQ_REP); + void *socket = dgram_mod_open_socket(); dgram_mod_bind(socket, port); int size; void *recvbuf; @@ -11,36 +14,37 @@ int rv; int remote_port; while ( (rv = dgram_mod_recvfrom(socket, &recvbuf, &size, &remote_port) ) == 0) { - printf( "REGIST CENTER RECEIVED REQUEST FROM %d: %s", remote_port, recvbuf); - sprintf(sendbuf, "RECEIVED FROM %d, %s", remote_port, recvbuf); + printf( "server: RECEIVED REQUEST FROM PORT %d NAME %s\n", remote_port, recvbuf); + sprintf(sendbuf, "RECEIVED PORT %d NAME %s", remote_port, recvbuf); dgram_mod_sendto(socket, sendbuf, strlen(sendbuf) + 1, remote_port); free(recvbuf); } dgram_mod_close_socket(socket); } -void client(int port) { - void *socket = dgram_mod_open_socket(REQ_REP); +void client(int port, char *sendbuf) { + 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); + printf("client :send request %s\n", sendbuf); + if(dgram_mod_sendandrecv(socket, sendbuf, strlen(sendbuf) + 1, port, &recvbuf, &size) == 0) { + printf("client :received reply => %s\n", (char *)recvbuf); free(recvbuf); } + dgram_mod_close_socket(socket); } +void usage() { + fprintf(stderr, "Usage: reqrep %s|%s <PORT> <NAME>\n", "server", "client"); +} int main(int argc, char *argv[]) { shm_init(512); int port; if (argc < 3) { - fprintf(stderr, "Usage: reqrep %s|%s <PORT> ...\n", "server", "client"); + usage(); return 1; } @@ -48,10 +52,13 @@ if (strcmp("server", argv[1]) == 0) { server(port); + } else if (strcmp("client", argv[1]) == 0) { + if (argc < 4) { + usage(); + return 1; + } + client(port, argv[3]); } - - if (strcmp("client", argv[1]) == 0) - client(port); return 0; -- Gitblit v1.8.0