wangzhengquan
2020-07-23 d1701c92a4de250de82ee5f75c69078f13851622
update
4个文件已删除
9个文件已修改
183 ■■■■ 已修改文件
demo/Makefile 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
demo/dgram_mod_req_rep.c 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
demo/dgram_mod_survey.c 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
demo/pub_sub.c 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
demo/queue 补丁 | 查看 | 原始文档 | blame | 历史
demo/req_rep 补丁 | 查看 | 原始文档 | blame | 历史
demo/req_rep.c 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/libshm_queue.a 补丁 | 查看 | 原始文档 | blame | 历史
src/socket/dgram_mod_socket.c 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/socket/include/dgram_mod_socket.h 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/socket/mod_socket.c 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
test_socket/dgram_mod_req_rep 补丁 | 查看 | 原始文档 | blame | 历史
test_socket/dgram_mod_survey 补丁 | 查看 | 原始文档 | blame | 历史
demo/Makefile
@@ -14,7 +14,7 @@
include $(ROOT)/Make.defines.$(PLATFORM)
PROGS =    req_rep pub_sub queue
PROGS = dgram_mod_req_rep dgram_mod_survey
build: $(PROGS)
demo/dgram_mod_req_rep.c
@@ -1,3 +1,6 @@
/**
 * 适应于注册
 */
#include "dgram_mod_socket.h"
#include "shm_mm.h"
#include "usg_common.h"
@@ -11,36 +14,34 @@
  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( "REGIST CENTER RECEIVED REQUEST FROM PORT %d NAME %s\n", remote_port, recvbuf);
    sprintf(sendbuf, "RECEIVED FROM 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 client(int port, char *sendbuf) {
  void *socket = dgram_mod_open_socket(REQ_REP);
  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 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 +49,13 @@
  if (strcmp("server", argv[1]) == 0) {
    server(port);
  } else if (strcmp("client", argv[1]) == 0) {
    if (argc < 4) {
      usage();
      return 1;
  }
  if (strcmp("client", argv[1]) == 0)
    client(port);
    client(port, argv[3]);
  }
  
  return 0;
demo/dgram_mod_survey.c
@@ -1,3 +1,7 @@
/**
 * 适应于心跳
 */
#include "dgram_mod_socket.h"
#include "shm_mm.h"
#include "usg_common.h"
demo/pub_sub.c
File was deleted
demo/queue
Binary files differ
demo/req_rep
Binary files differ
demo/req_rep.c
File was deleted
src/libshm_queue.a
Binary files differ
src/socket/dgram_mod_socket.c
@@ -18,8 +18,6 @@
void *dgram_mod_open_socket(int mod) {
    dgram_mod_socket_t * socket = (dgram_mod_socket_t *)calloc(1, sizeof(dgram_mod_socket_t));
    socket->mod = (socket_mod_t)mod;
    // socket->recv_thread = 0;
    // socket->recv_queue_map = NULL;
    socket->shm_socket = shm_open_socket(SHM_SOCKET_DGRAM);
    return (void *)socket;
}
@@ -56,3 +54,15 @@
    return shm_sendandrecv(socket->shm_socket, send_buf, send_size, send_port, recv_buf, recv_size);
}
int dgram_mod_get_socket_port(void * _socket) {
    dgram_mod_socket_t * socket = (dgram_mod_socket_t *) _socket;
    return socket->shm_socket->port;
}
void dgram_mod_free(void *buf) {
    free(buf);
}
src/socket/include/dgram_mod_socket.h
@@ -18,9 +18,6 @@
    
};
void *dgram_mod_open_socket(int mod);
int dgram_mod_close_socket(void * _socket);
@@ -31,9 +28,12 @@
int dgram_mod_recvfrom(void *_socket, void **buf, int *size, int *port);
 
int dgram_mod_sendandrecv(void * _socket, const void *send_buf, const int send_size, const int port, void **recv_buf, int *recv_size) ;
int dgram_mod_get_socket_port(void * _socket) ;
void dgram_mod_free(void *buf) ;
#ifdef __cplusplus
}
#endif
src/socket/mod_socket.c
@@ -60,10 +60,7 @@
    return rv;
}
int mod_get_socket_port(void * _socket) {
    mod_socket_t * socket = (mod_socket_t *) _socket;
    return socket->shm_socket->port;
}
int mod_socket_bind(void * _socket, int port){
@@ -192,6 +189,11 @@
    return -1;
}
int mod_get_socket_port(void * _socket) {
    mod_socket_t * socket = (mod_socket_t *) _socket;
    return socket->shm_socket->port;
}
void mod_free(void *buf) {
    free(buf);
test_socket/dgram_mod_req_rep
Binary files differ
test_socket/dgram_mod_survey
Binary files differ