From 653f2ac59c0c25463e531a128563c295843bc4c1 Mon Sep 17 00:00:00 2001
From: wangzhengquan <wangzhengquan85@126.com>
Date: 星期三, 27 一月 2021 13:56:24 +0800
Subject: [PATCH] update
---
test_net_socket/CMakeLists.txt | 7 -------
test_socket/CMakeLists.txt | 7 +++++++
/dev/null | 11 -----------
test_socket/stream_mod_survey.cpp | 0
test_socket/heart_beat.cpp | 0
test_socket/bus_test.txt | 5 +++++
test_socket/heart_beat.sh | 2 ++
7 files changed, 14 insertions(+), 18 deletions(-)
diff --git a/test_net_socket/CMakeLists.txt b/test_net_socket/CMakeLists.txt
index 574fcaf..0c543ef 100644
--- a/test_net_socket/CMakeLists.txt
+++ b/test_net_socket/CMakeLists.txt
@@ -5,19 +5,12 @@
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/net_mod_socket.sh
)
-add_custom_command(
- OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/heart_beat.sh
- COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/heart_beat.sh ${CMAKE_CURRENT_BINARY_DIR}/heart_beat.sh
- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/heart_beat.sh
- )
# add the executable
add_executable(test_net_mod_socket test_net_mod_socket.cpp ${CMAKE_CURRENT_BINARY_DIR}/net_mod_socket.sh)
target_link_libraries(test_net_mod_socket PRIVATE shm_queue ${EXTRA_LIBS} )
-add_executable(heart_beat heart_beat.cpp ${CMAKE_CURRENT_BINARY_DIR}/heart_beat.sh)
-target_link_libraries(heart_beat PRIVATE shm_queue ${EXTRA_LIBS} )
add_executable(test_bus_stop test_bus_stop.cpp)
diff --git a/test_socket/CMakeLists.txt b/test_socket/CMakeLists.txt
index a3f3fa5..111569d 100644
--- a/test_socket/CMakeLists.txt
+++ b/test_socket/CMakeLists.txt
@@ -8,4 +8,11 @@
+add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/heart_beat.sh
+ COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/heart_beat.sh ${CMAKE_CURRENT_BINARY_DIR}/heart_beat.sh
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/heart_beat.sh
+ )
+add_executable(heart_beat heart_beat.cpp ${CMAKE_CURRENT_BINARY_DIR}/heart_beat.sh)
+target_link_libraries(heart_beat PRIVATE shm_queue ${EXTRA_LIBS} )
diff --git a/test_socket/bus_test.txt b/test_socket/bus_test.txt
new file mode 100644
index 0000000..29a61c0
--- /dev/null
+++ b/test_socket/bus_test.txt
@@ -0,0 +1,5 @@
+1. open bus server
+2. open two more bus client, sub topic 'news'
+3. open a client to pub message constantly
+4. Ctl+C to kill a client. The other clients need to receive message normally.
+
diff --git a/test_socket/client.cpp b/test_socket/client.cpp
deleted file mode 100644
index 5c9210b..0000000
--- a/test_socket/client.cpp
+++ /dev/null
@@ -1,47 +0,0 @@
-#include "shm_queue_wrapper.h"
-
-typedef struct msg_t
-{
- int key;
- char buf[100];
-
-} msg_t;
-
-void client() {
- int key = -1;
- size_t qsize = 16;
- void * remote_queue = shmqueue_attach( 1);
- void * local_queue = shmqueue_create( &key, qsize);
- // message_t item;
- msg_t msg;
- msg.key = key;
-
- void * rec_msg;
- int rec_msg_size;
- //鍏ラ槦
- while(true) {
- printf("=====>say some thing:\n");
- scanf("%s", msg.buf);
- shmqueue_push(remote_queue, (void *)&msg, sizeof(msg));
- //printf("send: %s\n", msg.buf);
- shmqueue_pop(local_queue, &rec_msg, &rec_msg_size);
- printf("=====>peer : %s\n", ((msg_t*)rec_msg)->buf);
- free(rec_msg);
-
-
- }
-
- //閿�姣侀槦鍒�
- shmqueue_drop(local_queue);
- shmqueue_drop(remote_queue);
-}
-
-
-int main () {
- shm_mm_wrapper_init(512);
- client();
-
- //鏁翠釜杩涚▼閫�鍑烘椂闇�瑕佹墽琛岃繖涓柟娉曪紝璇ユ柟娉曢鍏堜細妫�鏌ユ槸鍚﹁繕鏈夊叾浠栬繘绋嬪湪浣跨敤璇ュ叡浜唴瀛橈紝濡傛灉杩樻湁鍏朵粬杩涚▼鍦ㄤ娇鐢ㄥ氨鍙槸detach,濡傛灉娌℃湁鍏朵粬杩涚▼鍦ㄤ娇鐢ㄥ垯閿�姣佹暣鍧楀唴瀛樸��
- shm_mm_wrapper_destroy();
- return 0;
-}
\ No newline at end of file
diff --git a/test_socket/dgram_mod_req_rep.cpp b/test_socket/dgram_mod_req_rep.cpp
deleted file mode 100644
index 39dbac1..0000000
--- a/test_socket/dgram_mod_req_rep.cpp
+++ /dev/null
@@ -1,180 +0,0 @@
-#include "dgram_mod_socket.h"
-#include "shm_mm_wraper.h"
-#include "usg_common.h"
-#include "lock_free_queue.h"
-
-#define WORKERS 4
-
-typedef struct task_t {
- void *buf;
- int size;
- int port;
-
-} task_t;
-
-
-typedef struct Targ {
- int port;
- int id;
-
-}Targ;
-
-LockFreeQueue<task_t, DM_Allocator> task_queue(128);
-void *client;
-
-void *worker(void *socket) {
- pthread_detach(pthread_self());
- char sendbuf[512];
- task_t task;
- while(true) {
- task_queue.pop(task);
- sprintf(sendbuf, "SERVER RECEIVED: %s", task.buf);
- // puts(sendbuf);
- dgram_mod_sendto(socket, sendbuf, strlen(sendbuf) + 1, task.port);
- free(task.buf);
- }
- return NULL;
-}
-
-void initThreadPool(void *socket) {
-
- pthread_t tid;
- for (int i = 0; i < WORKERS; i++)
- pthread_create(&tid, NULL, worker, socket);
-}
-
-void server(int port) {
- void *socket = dgram_mod_open_socket();
- dgram_mod_bind(socket, port);
- initThreadPool(socket);
-
- int rv;
- task_t task;
- while ( (rv = dgram_mod_recvfrom(socket, &task.buf, &task.size, &task.port) ) == 0) {
- task_queue.push(task);
-
- }
- dgram_mod_close_socket(socket);
-}
-
-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);
- }
- dgram_mod_close_socket(socket);
-}
-
-
-
-void *runclient(void *arg) {
- Targ *targ = (Targ *)arg;
- int port = targ->port;
- char sendbuf[512];
- int scale = 100000;
- int i;
-
-
- char filename[512];
- sprintf(filename, "test%d.tmp", targ->id);
- FILE *fp = NULL;
- fp = fopen(filename, "w+");
-
- int recvsize;
- void *recvbuf;
- for (i = 0; i < scale; i++) {
- sprintf(sendbuf, "thread(%d) %d", targ->id, i);
- fprintf(fp, "requst:%s\n", sendbuf);
- dgram_mod_sendandrecv(client, sendbuf, strlen(sendbuf) + 1, port, &recvbuf, &recvsize);
- fprintf(fp, "reply: %s\n", (char *)recvbuf);
- free(recvbuf);
- }
- fclose(fp);
-
- return (void *)i;
-}
-
-void startClients(int port) {
-
- int status, i = 0, processors = 4;
- void *res[processors];
- Targ *targs = (Targ *)calloc(processors, sizeof(Targ));
- pthread_t tids[processors];
- char sendbuf[512];
-
- struct timeval start;
-
- client = dgram_mod_open_socket();
-
- gettimeofday(&start, NULL);
- for (i = 0; i < processors; i++) {
- targs[i].port = port;
- targs[i].id = i;
- pthread_create(&tids[i], NULL, runclient, (void *)&targs[i]);
- }
-
- for (i = 0; i < processors; i++) {
- if (pthread_join(tids[i], &res[i]) != 0) {
- perror("multyThreadClient pthread_join");
- } else {
- fprintf(stderr, "client(%d) 鍐欏叆 %ld 鏉℃暟鎹甛n", i, (long)res[i]);
- }
- }
-
- struct timeval end;
- gettimeofday(&end, NULL);
-
- double difftime = end.tv_sec * 1000000 + end.tv_usec - (start.tv_sec * 1000000 + start.tv_usec);
- 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_mm_wrapper_init(512);
- int port;
- if (argc < 3) {
- fprintf(stderr, "Usage: reqrep %s|%s <PORT> ...\n", "server", "client");
- return 1;
- }
-
- port = atoi(argv[2]);
-
- if (strcmp("server", argv[1]) == 0) {
- // int temp = shm_mm_wrapper_alloc_key();
- // printf("tmp=%d\n", temp);
- server(port);
- } 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;
-}
\ No newline at end of file
diff --git a/test_net_socket/heart_beat.cpp b/test_socket/heart_beat.cpp
similarity index 100%
rename from test_net_socket/heart_beat.cpp
rename to test_socket/heart_beat.cpp
diff --git a/test_net_socket/heart_beat.sh b/test_socket/heart_beat.sh
similarity index 97%
rename from test_net_socket/heart_beat.sh
rename to test_socket/heart_beat.sh
index c3bd4ef..92b0867 100755
--- a/test_net_socket/heart_beat.sh
+++ b/test_socket/heart_beat.sh
@@ -1,5 +1,7 @@
#! /bin/bash
+# test kill -9
+
PROCESSES=4
function close() {
ipcrm -a
diff --git a/test_socket/server.cpp b/test_socket/server.cpp
deleted file mode 100644
index 8cfc4ae..0000000
--- a/test_socket/server.cpp
+++ /dev/null
@@ -1,44 +0,0 @@
-#include "shm_queue_wrapper.h"
-
-
-typedef struct msg_t
-{
- int key;
- char buf[100];
-
-} msg_t;
-
-void server() {
- void * msg;
- int msg_size;
- msg_t send_msg;
- int key = 1;
- size_t qsize = 16;
- void * local_queue = shmqueue_create( &key, qsize);
-
- struct timespec timeout = {1, 0};
-
- while(shmqueue_pop(local_queue, &msg, &msg_size) ) {
- void * remote_queue = shmqueue_attach(((msg_t *)msg)->key);
- printf("received: %s\n", ((msg_t *)msg)->buf);
- // send_msg.key = 1;
- sprintf(send_msg.buf, "hello, I have received: %s!", ((msg_t *)msg)->buf);
- shmqueue_push(remote_queue, (void *)&send_msg, sizeof(send_msg));
- shmqueue_drop(remote_queue);
- // cout << item.pic << endl;
- // i++;
- }
-
- //閿�姣侀槦鍒�
- shmqueue_drop(local_queue);
-}
-
-
-int main () {
- shm_mm_wrapper_init(512);
- server();
-
- //鏁翠釜杩涚▼閫�鍑烘椂闇�瑕佹墽琛岃繖涓柟娉曪紝璇ユ柟娉曢鍏堜細妫�鏌ユ槸鍚﹁繕鏈夊叾浠栬繘绋嬪湪浣跨敤璇ュ叡浜唴瀛橈紝濡傛灉杩樻湁鍏朵粬杩涚▼鍦ㄤ娇鐢ㄥ氨鍙槸detach,濡傛灉娌℃湁鍏朵粬杩涚▼鍦ㄤ娇鐢ㄥ垯閿�姣佹暣鍧楀唴瀛樸��
- shm_mm_wrapper_destroy();
- return 0;
-}
\ No newline at end of file
diff --git a/test_socket/survey.cpp b/test_socket/stream_mod_survey.cpp
similarity index 100%
rename from test_socket/survey.cpp
rename to test_socket/stream_mod_survey.cpp
diff --git a/test_socket/test_open_close.cpp b/test_socket/test_open_close.cpp
deleted file mode 100644
index 70daa75..0000000
--- a/test_socket/test_open_close.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-#include "dgram_mod_socket.h"
-#include "shm_mm_wraper.h"
-#include "usg_common.h"
-#include "lock_free_queue.h"
-
-int main() {
- shm_mm_wrapper_init(512);
- void *socket = dgram_mod_open_socket();
- dgram_mod_close_socket(socket);
- // dgram_mod_close_socket(socket);
-}
\ No newline at end of file
--
Gitblit v1.8.0