tmp
wangzhengquan
2020-07-17 b190a6af38f077b1754b4cb0cdd6c1f6e1494aba
tmp
5个文件已删除
1个文件已添加
15个文件已修改
4000107 ■■■■ 已修改文件
Makefile 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
queue/include/shm_socket.h 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
queue/libshm_queue.a 补丁 | 查看 | 原始文档 | blame | 历史
queue/logger_factory.h 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
queue/mod_socket.c 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
queue/shm_socket.c 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
test/c.txt 400000 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
test/c1.txt 400000 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
test/communication 补丁 | 查看 | 原始文档 | blame | 历史
test/communication.c 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
test/p.txt 400000 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
test/p1.txt 400000 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
test/test.txt 800024 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
test2/log.txt 800032 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
test2/pub_sub 补丁 | 查看 | 原始文档 | blame | 历史
test2/req_rep 补丁 | 查看 | 原始文档 | blame | 历史
test2/req_rep.c 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
test2/test0.txt 199999 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
test2/test1.txt 199999 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
test2/test2.txt 200000 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
test2/test3.txt 199999 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Makefile
@@ -1,4 +1,4 @@
DIRS = queue  test2
DIRS = queue test test2
all:
    for i in $(DIRS); do \
queue/include/shm_socket.h
@@ -76,7 +76,7 @@
int shm_close_socket(shm_socket_t * socket) ;
int shm_soket_bind(shm_socket_t * socket, int port) ;
int shm_socket_bind(shm_socket_t * socket, int port) ;
int shm_listen(shm_socket_t * socket) ;
queue/libshm_queue.a
Binary files differ
queue/logger_factory.h
@@ -7,7 +7,7 @@
    static Logger getLogger() {
//ERROR ALL
        static Logger logger(Logger::ERROR);
        static Logger logger(Logger::ALL);
        return logger;
    }
};
queue/mod_socket.c
@@ -1,6 +1,9 @@
#include "mod_socket.h"
#include "shm_socket.h"
#include "usg_common.h"
#include "logger_factory.h"
static Logger logger = LoggerFactory::getLogger();
typedef struct mod_entry_t
{
    int size;
@@ -55,7 +58,7 @@
int mod_socket_bind(void * _socket, int port){
    mod_socket_t * socket = (mod_socket_t *) _socket;
    return  shm_soket_bind(socket->shm_socket, port);
    return  shm_socket_bind(socket->shm_socket, port);
}
void * run_server_recv_client_msg(void *_socket) {
@@ -118,9 +121,11 @@
    if(socket->is_server ) {
        switch(socket->mod) {
            case REQ_REP:
logger.debug("mod_send before");
                SemUtil::dec(socket->items);
                rv = shm_send(socket->client_socket, buf, size);
                SemUtil::inc(socket->slots);
logger.debug("mod_send after");
                break;
            case SURVEY:
            case PUB_SUB:
@@ -135,7 +140,10 @@
        
    }
    else {
        return shm_send(socket->shm_socket, buf, size);
logger.debug("mod_send before");
        rv = shm_send(socket->shm_socket, buf, size);
logger.debug("mod_send after");
        return rv;
    }
    return -1;
    
@@ -149,12 +157,14 @@
    if(socket->is_server ) {
        switch(socket->mod) {
            case REQ_REP:
    logger.debug("REQ_REP mod_recv before");
                SemUtil::dec(socket->slots);
                rv = socket->recvQueue->pop(entry);
                *buf = entry.buf;
                *size = entry.size;
                socket->client_socket = entry.client_socket;
                SemUtil::inc(socket->items);
logger.debug("REQ_REP mod_recv after");
                break;
            case PUB_SUB:
                rv = 0;
@@ -170,7 +180,10 @@
        return rv;
    }
    else {
        return shm_recv(socket->shm_socket, buf, size);
logger.debug("mod_recv before");
        rv = shm_recv(socket->shm_socket, buf, size);
logger.debug("mod_recv after");
        return rv;
    }
    return -1;
queue/shm_socket.c
@@ -68,6 +68,7 @@
            client_socket->remoteQueue->push_timeout(close_msg, &timeout);
            delete client_socket->remoteQueue;
            client_socket->remoteQueue=NULL;
            delete client_socket->messageQueue;
            client_socket->messageQueue=NULL;
            socket->clientSocketMap->erase(iter);
@@ -89,9 +90,7 @@
    return _shm_close_socket(socket, true);
}
int shm_soket_bind(shm_socket_t * socket, int port) {
int shm_socket_bind(shm_socket_t * socket, int port) {
    shm_socket_t * _socket = (shm_socket_t *) socket;
    _socket -> port = port;
    return 0;
@@ -308,10 +307,10 @@
int shm_send(shm_socket_t *socket, const void *buf, const int size) {
    // hashtable_t *hashtable = mm_get_hashtable();
    if(socket->remoteQueue == NULL) {
        err_msg(errno, "当前客户端无连接!");
        return -1;
    }
    // if(socket->remoteQueue == NULL) {
    //     err_msg(errno, "当前客户端无连接!");
    //     return -1;
    // }
    shm_msg_t dest;
    dest.type=SHM_COMMON_MSG;
    dest.port = socket->port;
test/c.txt
File was deleted
test/c1.txt
File was deleted
test/communication
Binary files differ
test/communication.c
@@ -1,4 +1,6 @@
#include "socket.h"
#include "shm_socket.h"
#include "usg_common.h"
#include "shm_mm.h"
typedef struct Targ {
    int port;
    int id;
@@ -14,7 +16,7 @@
        sprintf(sendbuf, "SERVER RECEIVED: %s", recvbuf);
        puts(sendbuf);
        shm_send(socket, sendbuf, strlen(sendbuf)+1);
        shm_free(recvbuf);
        free(recvbuf);
    }
    shm_close_socket(socket);
}
@@ -46,7 +48,7 @@
        shm_send(socket, sendbuf, strlen(sendbuf)+1) ;
        shm_recv(socket, &recvbuf, &size);
        printf("reply: %s\n", (char *)recvbuf);
        shm_free(recvbuf);
        free(recvbuf);
    }
    shm_close_socket(socket);
@@ -60,7 +62,7 @@
    shm_send(socket, sendbuf, strlen(sendbuf)+1) ;
    shm_recv(socket, &recvbuf, &size);
    printf("reply: %s\n", (char *)recvbuf);
    shm_free(recvbuf);
    free(recvbuf);
    
}
test/p.txt
File was deleted
test/p1.txt
File was deleted
test/test.txt
New file
Diff too large
test2/log.txt
File was deleted
test2/pub_sub
Binary files differ
test2/req_rep
Binary files differ
test2/req_rep.c
@@ -1,6 +1,8 @@
#include "mod_socket.h"
#include "shm_mm.h"
#include "usg_common.h"
#include "logger_factory.h"
static Logger logger = LoggerFactory::getLogger();
typedef struct Targ {
    int port;
    int id;
@@ -14,7 +16,9 @@
  int size;
  void *recvbuf;
  char sendbuf[512];
  while (mod_recv(socket, &recvbuf, &size) == 0) {
  int rv;
  while ( (rv = mod_recv(socket, &recvbuf, &size) ) == 0) {
  logger.debug("rv ==%d", rv);
    sprintf(sendbuf, "SERVER RECEIVED: %s", recvbuf);
    puts(sendbuf);
    mod_send(socket, sendbuf, strlen(sendbuf) + 1);
test2/test0.txt
Diff too large
test2/test1.txt
Diff too large
test2/test2.txt
Diff too large
test2/test3.txt
Diff too large