From 950e8841a4eada051108084606c3205e67cac804 Mon Sep 17 00:00:00 2001
From: wangzhengquan <wangzhengquan85@126.com>
Date: 星期四, 23 七月 2020 17:11:03 +0800
Subject: [PATCH] commit
---
src/libshm_queue.a | 0
src/socket/shm_socket.c | 20 ++++++++++++++++----
test_socket/dgram_socket_test | 0
demo/pub_sub | 0
test_socket/dgram_mod_req_rep | 0
test_socket/dgram_mod_req_rep.c | 2 +-
demo/req_rep | 0
test_socket/Makefile | 2 +-
test_socket/dgram_mod_survey | 0
9 files changed, 18 insertions(+), 6 deletions(-)
diff --git a/demo/pub_sub b/demo/pub_sub
index ce02873..de2e57e 100755
--- a/demo/pub_sub
+++ b/demo/pub_sub
Binary files differ
diff --git a/demo/req_rep b/demo/req_rep
index bfb33e1..7ec846c 100755
--- a/demo/req_rep
+++ b/demo/req_rep
Binary files differ
diff --git a/src/libshm_queue.a b/src/libshm_queue.a
index 396bc22..fc99639 100644
--- a/src/libshm_queue.a
+++ b/src/libshm_queue.a
Binary files differ
diff --git a/src/socket/shm_socket.c b/src/socket/shm_socket.c
index 6708469..185ecaf 100644
--- a/src/socket/shm_socket.c
+++ b/src/socket/shm_socket.c
@@ -96,7 +96,8 @@
// print_msg("===accept:", src);
client_port = src.port;
- client_socket = (shm_socket_t *)malloc(sizeof(shm_socket_t));
+ // client_socket = (shm_socket_t *)malloc(sizeof(shm_socket_t));
+ client_socket = shm_open_socket(socket->socket_type);
client_socket->port = socket->port;
// client_socket->queue= socket->queue;
//鍒濆鍖栨秷鎭痲ueue
@@ -211,7 +212,7 @@
int shm_recv(shm_socket_t* socket, void **buf, int *size) {
if(socket->socket_type != SHM_SOCKET_STREAM) {
- err_exit(0, "can not invoke shm_recv method with a socket which is not a SHM_SOCKET_STREAM socket");
+ err_exit(0, "can not invoke shm_recv method in a %d type socket which is not a SHM_SOCKET_STREAM socket ", socket->socket_type);
}
shm_msg_t src;
@@ -232,6 +233,9 @@
// 鐭繛鎺ユ柟寮忓彂閫�
int shm_sendto(shm_socket_t *socket, const void *buf, const int size, const int port) {
+ if(socket->socket_type != SHM_SOCKET_DGRAM) {
+ err_exit(0, "Can't invoke shm_sendto method in a %d type socket which is not a SHM_SOCKET_DGRAM socket ", socket->socket_type);
+ }
hashtable_t *hashtable = mm_get_hashtable();
if(socket->queue == NULL) {
@@ -272,6 +276,9 @@
// 鐭繛鎺ユ柟寮忔帴鍙�
int shm_recvfrom(shm_socket_t *socket, void **buf, int *size, int *port){
+ if(socket->socket_type != SHM_SOCKET_DGRAM) {
+ err_exit(0, "Can't invoke shm_recvfrom method in a %d type socket which is not a SHM_SOCKET_DGRAM socket ", socket->socket_type);
+ }
hashtable_t *hashtable = mm_get_hashtable();
if(socket->queue == NULL) {
if(socket->port == -1) {
@@ -303,6 +310,9 @@
}
int shm_sendandrecv(shm_socket_t *socket, const void *send_buf, const int send_size, const int send_port, void **recv_buf, int *recv_size) {
+ if(socket->socket_type != SHM_SOCKET_DGRAM) {
+ err_exit(0, "Can't invoke shm_sendandrecv method in a %d type socket which is not a SHM_SOCKET_DGRAM socket ", socket->socket_type);
+ }
int recv_port;
int rv;
@@ -336,11 +346,13 @@
void _server_close_conn_to_client(shm_socket_t* socket, int port) {
shm_socket_t *client_socket;
- auto iter = socket->clientSocketMap->find(port);
+ std::map<int, shm_socket_t* >::iterator iter = socket->clientSocketMap->find(port);
if( iter != socket->clientSocketMap->end() ) {
+ client_socket = iter->second;
+ free((void *)client_socket);
socket->clientSocketMap->erase(iter);
}
- free((void *)client_socket);
+
}
diff --git a/test_socket/Makefile b/test_socket/Makefile
index dd1d80f..f3d0ac8 100644
--- a/test_socket/Makefile
+++ b/test_socket/Makefile
@@ -14,7 +14,7 @@
include $(ROOT)/Make.defines.$(PLATFORM)
-PROGS = dgram_socket_test dgram_mod_req_rep dgram_mod_survey
+PROGS = dgram_socket_test dgram_mod_req_rep dgram_mod_survey stream_mod_req_rep
build: $(PROGS)
diff --git a/test_socket/dgram_mod_req_rep b/test_socket/dgram_mod_req_rep
index 3d62d71..0405276 100755
--- a/test_socket/dgram_mod_req_rep
+++ b/test_socket/dgram_mod_req_rep
Binary files differ
diff --git a/test_socket/dgram_mod_req_rep.c b/test_socket/dgram_mod_req_rep.c
index f4d2918..119b497 100644
--- a/test_socket/dgram_mod_req_rep.c
+++ b/test_socket/dgram_mod_req_rep.c
@@ -130,7 +130,7 @@
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;
+ long diffmsec = difftime - diffsec*1000000;
printf("cost: %ld sec: %ld msc\n", diffsec, diffmsec);
}
diff --git a/test_socket/dgram_mod_survey b/test_socket/dgram_mod_survey
index dbb98dc..098d542 100755
--- a/test_socket/dgram_mod_survey
+++ b/test_socket/dgram_mod_survey
Binary files differ
diff --git a/test_socket/dgram_socket_test b/test_socket/dgram_socket_test
index 63e14ea..98b6997 100755
--- a/test_socket/dgram_socket_test
+++ b/test_socket/dgram_socket_test
Binary files differ
--
Gitblit v1.8.0