#include <sys/socket.h>
#include <sys/un.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
服务端启动
int wiCallCtrlServerInit(const char *server_socket_file) // #define SERVER_SOCKET_FILE "/tmp/cfg_server.sock"
1. 建立进程通信的服务端套接字
fd = socket(PF_UNIX, SOCK_DGRAM, 0) // 域PF_UNIX用于管道和文件,类型,协议0为自动
2. 将套接字和服务端文件进行绑定
// struct sockaddr_un addr; 把地址初始化后,赋值,地址类型,地址为server_socket_file
bind(fd, &addr, sizeof(addr)) // 先 unlink(server_socket_file);再绑定
3. 启动一个线程处理通信,返回服务端的套接字
pthread_create(&id, NULL, (void *)*domain_socket_thread, (void *)fd); // 启动服务器线程
return fd;
服务端的处理:
void *domain_socket_thread(void *arg)
while // 服务器无限循环,每隔1秒,用select去查读 文件描述符 里,是否 这个服务器fd 准备就绪
iRet =