zhangmeng
2024-01-18 f2961d3d1d0d3acb8ac27008f8df9cfb9533b803
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <assert.h>
#include "net_mod_server_socket_wrapper.h"
#include "net_mod_socket_wrapper.h"
#include "bus_server_socket_wrapper.h"
 
#include "shm_mm_wrapper.h"
#include "usg_common.h"
#include <getopt.h>
#include "logger_factory.h"
 
//测试传递函数指针
 
void sendback(void ** buf, int *size, void * user_data){
      char sendbuf[512];
    printf( "server: RECEIVED REQUEST FROM \n ");
    sprintf(sendbuf, "RECEIVED REQUEST \n");
    // buf 和 size是返回值
    *buf = sendbuf;
    *size = strlen(sendbuf) + 1;
    return;
}
 
void start_reply(int mkey) {
  printf("start reply\n");
  void *ser = net_mod_socket_open();
  net_mod_socket_bind(ser, mkey);
  int recvsize;
  void *recvbuf;
 
  int rv;
  int key;
  while(true) {
    rv = net_mod_socket_recvandsend_timeout(ser, &recvbuf, &recvsize, &key, sendback, 2, 2000000, NULL );
    if(rv == 0)
        free(recvbuf);
  }
  // while ( (rv = net_mod_socket_recvfrom(ser, &recvbuf, &size, &key) ) == 0) {
  //  // printf( "server: RECEIVED REQUEST FROM  %d NAME %s\n", key, recvbuf);
  //   sprintf(sendbuf, "%d RECEIVED %s", net_mod_socket_get_key(ser), (char *)recvbuf);
  //   net_mod_socket_sendto(ser, sendbuf, strlen(sendbuf) + 1, key);
  //   free(recvbuf);
  // }
}
 
 
int main() {
    shm_mm_wrapper_init(512);
    start_reply(100);
}