From 5410446ade40493d17f7e2d7f0d687b0998acc6a Mon Sep 17 00:00:00 2001
From: wangzhengquan <wangzhengquan85@126.com>
Date: 星期三, 27 一月 2021 11:56:54 +0800
Subject: [PATCH] timeout wait 合一
---
test_socket/bus_test.cpp | 38 ++++++++++++++++++++++++++++++--------
1 files changed, 30 insertions(+), 8 deletions(-)
diff --git a/test_socket/bus_test.cpp b/test_socket/bus_test.cpp
index b815476..8d630b6 100644
--- a/test_socket/bus_test.cpp
+++ b/test_socket/bus_test.cpp
@@ -3,7 +3,12 @@
#include "shm_mm_wrapper.h"
#include "usg_common.h"
#include "mm.h"
+#include "logger_factory.h"
+
+#include "bus_error.h"
+static Logger *logger = LoggerFactory::getLogger();
+
BusServerSocket * server_socket;
void sigint_handler(int sig) {
@@ -24,12 +29,24 @@
void *recvbuf;
int size;
int key;
+
+ int rv;
ShmModSocket *sk = (ShmModSocket *)skptr;
- while ( true) {
- sk->recvfrom( &recvbuf, &size, &key);
- printf("鏀跺埌璁㈤槄娑堟伅:%s\n", recvbuf);
- free(recvbuf);
+ struct timespec timeout = {2, 0};
+ while (true) {
+ printf("run_recv before\n");
+
+ // rv = sk->recvfrom_timeout( &recvbuf, &size, &key, &timeout);
+ rv = sk->recvfrom( &recvbuf, &size, &key);
+ if(rv == 0) {
+ printf("鏀跺埌璁㈤槄娑堟伅:%s\n", recvbuf);
+ free(recvbuf);
+ } else {
+ printf("recvfrom error %d\n", rv);
+ }
+
}
+ return NULL;
}
@@ -37,18 +54,23 @@
ShmModSocket *sk = new ShmModSocket();
pthread_t tid;
- pthread_create(&tid, NULL, run_recv, (void *)sk);
+
+
int size;
char action[512];
char topic[512];
char content[512];
long i = 0;
+
+
+ pthread_create(&tid, NULL, run_recv, (void *)sk);
+
while (true) {
//printf("Usage: pub <topic> [content] or sub <topic>\n");
- printf("Can I help you? sub, pub, desub or quit\n");
- scanf("%s",action);
-
+ printf("Can I help you? sub, pub, desub or quit %d\n", i++);
+ // scanf("%s", action);
+ std::cin >> action;
if(strcmp(action, "sub") == 0) {
printf("Please input topic!\n");
scanf("%s", topic);
--
Gitblit v1.8.0