我试图用服务器客户端使用FIFO(命名管道)和共享内存制作井字游戏。等到2 pid写入FIFO(命名管道)
第一步是将客户端进程的pid写入FIFO。 而在服务器进程中,我需要等到2个pid通过FIFO(来自2个不同的客户端进程)。
现在我只是在做2从管道读取,但它不适用。我需要阅读一段时间循环或什么?
客户端代码:
#include <stdio.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
void main()
{
int fd;
int pid=getpid();
pid_t pid1=getpid();
fd=open("fifo_clientTOserver",O_WRONLY);
write(fd,&pid1,sizeof(pid_t));
printf("%d\n",pid1);
while(1);
}
服务器代码:
#include <stdio.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
void main()
{
int fd;
pid_t pid;
ftok("shmdemo.c","j");
mkfifo("fifo_clientTOserver",400);
fd=open("fifo_clientTOserver",O_RDONLY);
read(fd,&pid,sizeof(pid_t));
printf("%d",pid);
read(fd,&pid,sizeof(pid_t));
printf("%d",pid);
//sleep(2);
}
我想该服务器将等到2个客户端运行的,我应该怎么做呢?
非常感谢, Asaf。