wangzhengquan
2020-12-23 1b94589dcb8d497d2d8a208efd61a54631f6b84e
test_net_socket/heart_beat.c
File was renamed from test_socket/dgram_mod_survey.c
@@ -1,6 +1,10 @@
#include "dgram_mod_socket.h"
#include "net_mod_server_socket_wrapper.h"
#include "net_mod_socket_wrapper.h"
#include "bus_server_socket_wrapper.h"
#include "shm_mm_wraper.h"
#include "usg_common.h"
#include <getopt.h>
typedef struct Targ {
@@ -10,43 +14,50 @@
}Targ;
void sigint_handler(int sig) {
   //dgram_mod_close_socket(server_socket);
   // net_mod_socket_close(server_socket);
  printf("===Catch sigint======================\n");
  shm_mm_wrapper_destroy();
  exit(0);
}
void server(int port) {
  void *socket = dgram_mod_open_socket();
  dgram_mod_bind(socket, port);
  void *serv = net_mod_socket_open();
  net_mod_socket_bind(serv, port);
  int size;
  void *recvbuf;
  char sendbuf[512];
  int rv;
  int remote_port;
  while (true) {
    if ((rv = dgram_mod_recvfrom_timeout(socket, &recvbuf, &size, &remote_port, 15, 0) ) == 0) {
    if ((rv =  net_mod_socket_recvfrom(serv, &recvbuf, &size, &remote_port) ) == 0) {
      printf( "RECEIVED HREARTBEAT FROM %d: %s\n", remote_port, recvbuf);
      net_mod_socket_sendto(serv, "suc", strlen("suc")+1, remote_port);
      free(recvbuf);
    }
    
  }
  dgram_mod_close_socket(socket);
  net_mod_socket_close(serv);
}
void client(int port) {
  void *socket = dgram_mod_open_socket();
  int rv;
  void *client = net_mod_socket_open();
  int size;
  char sendbuf[512];
  long i = 0;
  net_node_t node_arr[] = {"", 0, 100};
  int node_arr_size = 1;
  int recv_arr_size;
  net_mod_recv_msg_t *recv_arr;
  while (true) {
    sprintf(sendbuf, "%d", i);
    printf("SEND HEART:%s\n", sendbuf);
    dgram_mod_sendto(socket, sendbuf, strlen(sendbuf) + 1, port);
    rv = net_mod_socket_sendandrecv(client, node_arr, node_arr_size, sendbuf, strlen(sendbuf)+1, NULL, NULL);
   // sleep(1);
    i++;
  }
  dgram_mod_close_socket(socket);
   net_mod_socket_close(client);
}
@@ -54,20 +65,26 @@
  signal(SIGINT,  sigint_handler);
  Targ *targ = (Targ *)arg;
  int port = targ->port;
  void *socket = dgram_mod_open_socket();
  void *socket = net_mod_socket_open();
  int size;
  char sendbuf[512];
  long scale = 10;
  long i = 0;
  net_node_t node_arr[] = {"", 0, 100};
  int node_arr_size = 1;
  int recv_arr_size;
  net_mod_recv_msg_t *recv_arr;
  while (i < scale) {
    sprintf(sendbuf, "%d", i);
    printf("%d SEND HEART:%s\n", targ->id, sendbuf);
    dgram_mod_sendto(socket, sendbuf, strlen(sendbuf) + 1, port);
    net_mod_socket_sendto(socket, sendbuf, strlen(sendbuf) + 1, port);
    sleep(1);
    i++;
  }
  
  dgram_mod_close_socket(socket);
   net_mod_socket_close(socket);
  return (void *)i;
}