FIFO服务器程序

时间:2011-11-08 03:31:30

标签: c linux client-server mkfifo

enter image description here

上面的程序我输入了linux。它基本上必须在不同的终端中连接客户端和服务器。但是当我以正确的顺序运行它们时,即

  1. 编译服务器 - >运行服务器
  2. 编译客户端 - >运行客户端
  3. 终端什么都不做。它甚至不打印第一个"Trying to connect"语句的printf部分。这里有什么错误?

    修改

    我检查了mkfifo的返回值,因为@parapura rajkumar说。但它仍然是一样的。这是我更改的服务器代码。

    if(mkfifo("fifo1",0666)<0) {
      printf("Error");
    }
    if(mkfifo("fifo2",0666)<0) {
      printf("Error");
    }
    fflush(stdout);
    

1 个答案:

答案 0 :(得分:2)

你犯了僵局。服务器等待打开(“fifo1”,O_RDONLY),客户端等待打开(“fifo2”,O_RDONLY)。

编辑client.c:

int writefd = open("fifo1",O_WRONLY);
int readfd = open("fifo2",O_RDONLY);