#include #include #include #include #include #include #include #include #include #include #include "ipc_msg.h" int basic_create_ipc_client(char * unix_domain_path, memfd_data_st * ptr_memfd_data) { int fd; int connect_fd; struct sockaddr_un srv_addr; char snd_buf[MAX_LEN] = {0}; char rcv_buf[MAX_LEN] = {0}; int ret; int i; char *fd_path; int rcv_num = 0; connect_fd = socket(AF_UNIX, SOCK_STREAM, 0); if(connect_fd < 0) { perror("client create socket failed"); return 1; } srv_addr.sun_family = AF_UNIX; if(unix_domain_path == NULL) { unix_domain_path = UNIX_DOMAIN; } strcpy(srv_addr.sun_path, unix_domain_path); ret = connect(connect_fd, (struct sockaddr*)&srv_addr, sizeof(srv_addr)); if(ret == -1) { perror("connect to server failed!"); close(connect_fd); unlink(UNIX_DOMAIN); return 1; } printf("connect to server path:%s success!", srv_addr.sun_path); //memset(rcv_buf, 0, sizeof(rcv_buf)); //int rcv_num = read(connect_fd, rcv_buf, sizeof(rcv_buf)); //memcpy(&memfd_data, rcv_buf, sizeof(memfd_data_st)); memset(snd_buf, 0, 256); strcpy(snd_buf, HELLO_MSG); printf("sizeof(snd_buf): %ld\n", sizeof(snd_buf)); printf("send data to server... ...\n"); write(connect_fd, snd_buf, sizeof(snd_buf)); printf("send end!\n"); memset(rcv_buf, 0, sizeof(rcv_buf)); rcv_num = read(connect_fd, rcv_buf, sizeof(rcv_buf)); if(rcv_num == 0) { close(connect_fd); return 0; } memcpy(ptr_memfd_data, rcv_buf, rcv_num); close(connect_fd); }