void *socket_thread(void *datas) //开启socket服务端,并将socket服务端初始化
{
int n_read = 0;
pthread_t readPthread;
struct sockaddr_in c_addr;
memset(&c_addr, 0, sizeof(struct sockaddr_in));
int clen = sizeof(struct sockaddr_in);
socketHandler = findCommandByName("socketServer", pCommandHead); //在控制工厂找到socket
if (socketHandler == NULL)
{
printf("查找套接字处理程序错误\n");
pthread_exit(NULL);
}
else
{
printf("%s 初始化成功\n", socketHandler->commandName);
}
socketHandler->Init(socketHandler, NULL, NULL); //初始化socket
while (1)
{
c_fd = accept(socketHandler->sfd, (struct sockaddr *)&c_addr, &clen);
printf("c_fd = %d\n", c_fd);
if (write_flag == 0) //通知线程处于关闭状态
{
write_flag = 1;
pthread_create(&writeThread, NULL, write_thread, NULL); //打开通知线程
}
pthread_create(&readPthread, NULL, read_thread, NULL);
}
}
基于树莓派的智能家居系统(四十六)——socket初始化
最新推荐文章于 2024-05-16 10:23:10 发布