wangzhengquan
2020-07-17 5e3e6719f7d7922decdc16d2313baf2e94210750
test2/pub_sub.c
@@ -1,41 +1,37 @@
#include "socket.h"
#include "mod_socket.h"
#include "shm_mm.h"
#include "usg_common.h"
void server(int port) {
   void *socket = shm_open_socket(PUB_SUB);
   shm_bind(socket, port);
   shm_listen(socket);
   void *socket = mod_open_socket(PUB_SUB);
   mod_socket_bind(socket, port);
   mod_listen(socket);
   int size;
   void *recvbuf;
   char sendbuf[512];
   while(true) {
      shm_recv(socket, &recvbuf, &size);
      sprintf(sendbuf, "pub: %s", recvbuf);
      puts(sendbuf);
      shm_send(socket, sendbuf, strlen(sendbuf)+1) ;
      shm_free(recvbuf);
      printf("请输入发布消息:");
      scanf("%s", sendbuf);
      mod_send(socket, sendbuf, strlen(sendbuf)+1) ;
      free(recvbuf);
   }
   shm_close_socket(socket);
   mod_close_socket(socket);
}
void client(int port) {
   void *socket = shm_open_socket(PUB_SUB);
   shm_connect(socket, port);
   void *socket = mod_open_socket(PUB_SUB);
   mod_connect(socket, port);
   int size;
   void *recvbuf;
   char sendbuf[512];
   sprintf(sendbuf, "sub");
   shm_send(socket, sendbuf, strlen(sendbuf)+1) ;
   while(true) {
      shm_recv(socket, &recvbuf, &size);
      printf("received sub message: %s\n", (char *)recvbuf);
      shm_free(recvbuf);
   while(mod_recv(socket, &recvbuf, &size) == 0) {
      printf("收到订阅消息: %s\n", (char *)recvbuf);
      free(recvbuf);
   }
   shm_close_socket(socket);
   mod_close_socket(socket);
}
int main(int argc, char *argv[]) {