IT技术互动交流平台

利用管道编写单机版QQ聊天程序

作者:ARM+Linux挖掘机  发布日期:2012-06-19 09:06:17
/* ************************************************************************
 *       Filename:  Peter.c
 *    Description:  
 *        Version:  1.0
 *        Created:  2012年06月18日 16时32分13秒
 *       Revision:  none
 *       Compiler:  gcc
 *         Author:  YOUR NAME (), 
 *        Company:  
 * ************************************************************************/
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <fcntl.h>
int main(int argc, char *argv[])
{ 
 pid_t pid;
 char buf[50]="";
 int fd_lp,fd_pl,n;
 if((mkfifo("./l_t_p",0666)) < 0)
  perror("mkfifo");
 if((mkfifo("./p_t_l",0666)) < 0)
  perror("mkfifo");
  fd_lp=open("./l_t_p",O_RDONLY);
  fd_pl=open("./p_t_l",O_WRONLY);
  printf("Hi,I am Peter.\n");
 if((pid=fork()) < 0)
 {
  perror("file");
  exit(-1);
 }
 if(pid == 0)
 {
  while(1)
  {
   printf("Peter:");
   fflush(stdout);
   fgets(buf,50,stdin);
   write(fd_pl,buf,50);
  }
 
 }
 if(pid > 0)
 {
  while(1)
  {
   if((n=read(fd_lp,buf,sizeof(buf)) > 0))
   {
   printf("\rLucy:%s",buf);
   fflush(stdout);
   printf("Peter:");
   fflush(stdout);
   }
  }
 }
 return 0;
}

 
 
/* ************************************************************************
 *       Filename:  Lucy.c
 *    Description:  
 *        Version:  1.0
 *        Created:  2012年06月18日 16时32分13秒
 *       Revision:  none
 *       Compiler:  gcc
 *         Author:  Ywww.it165.netOUR NAME (), 
 *        Company:  
 * ************************************************************************/
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <fcntl.h>
int main(int argc, char *argv[])
{ 
 pid_t pid;
 char buf[50]="";
 int fd_lp,fd_pl,n;
 if((mkfifo("./l_t_p",0666)) < 0)
  perror("mkfifo");
 if((mkfifo("./p_t_l",0666)) < 0)
  perror("mkfifo");
 fd_lp=open("./l_t_p",O_WRONLY);
 fd_pl=open("./p_t_l",O_RDONLY);
 printf("Hi,I am Lucy.\n");
 if((pid=fork()) < 0)
 {
 perror("file");
 exit(-1);
 }
 if(pid == 0)
 {
  while(1)
  {
   printf("Lucy:");
   fflush(stdout);
   fgets(buf,50,stdin);
   write(fd_lp,buf,50);
  }
 
 }
 if(pid > 0)
 {
 while(1)
  {
  if((n=read(fd_pl,buf,sizeof(buf))) > 0)
   {
   printf("\rPeter:%s",buf);
   fflush(stdout);
   printf("Lucy:");
   fflush(stdout);
   }
  }
 }
 return 0;
}

延伸阅读:

Tag标签: 单机版   QQ聊天程序  
  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规