进程间双向通信--sockpair
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,sockpair是一个套接字,可以用于网络通信,也可用于本机内进程间通信。sockpair类似于管道,只不过管道是用于单向通信的,只能一方读,一方写,。而想要用于进程间双向通信,就要pipe两次,创建
千家信息网最后更新 2026年10月31日进程间双向通信--sockpair
sockpair是一个套接字,可以用于网络通信,也可用于本机内进程间通信。
sockpair类似于管道,只不过管道是用于单向通信的,只能一方读,一方写,。而想要用于进程间双向通信,就要pipe两次,创建两个管道。sockpair直接就可以实现进程间双向通信。
1 #include2 #include 3 #include 4 #include 5 #include 6 #include 7 int main() 8 { 9 int fd[2]={0,0}; 10 int sock = socketpair(AF_LOCAL,SOCK_STREAM,0,fd); 11 if(sock<0) 12 { 13 perror("socketpair"); 14 exit(1); 15 } 16 pid_t id = fork(); 17 if(id<0) 18 { 19 perror("fork"); 20 exit(2); 21 } 22 else if(id == 0) 23 { 24 close(fd[0]); 25 char buf[1024]; 26 while(1) 27 { 28 memset(buf,'\0',sizeof(buf)); 29 strcpy(buf,"hello world"); 30 write(fd[1],buf,sizeof(buf)-1); 31 read(fd[1],buf,sizeof(buf)-1); 32 sleep(1); 33 printf("father say:%s\n",buf); 34 } 35 close(fd[1]); 36 } 37 else 38 { 39 close(fd[1]); 40 char buf[1024]; 41 while(1) 42 { 43 read(fd[0],buf,sizeof(buf)-1); 44 printf("child say:%s\n",buf); 45 memset(buf,'\0',sizeof(buf)); 46 strcpy(buf,"nihao"); 47 write(fd[0],buf,sizeof(buf)-1); 48 sleep(1); 49 } 50 close(fd[0]); 51 } 52 return 0; 53 } [fbl@localhost socketpair]$ ./my_pair child say:hello worldfather say:nihaochild say:hello worldfather say:nihaochild say:hello worldfather say:nihaochild say:hello world
通信
进程
管道
双向
一方
两个
单向
只不过
套接字
网络
网络通信
本机
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
西安纸贵互联网科技有限公司
科技企业和互联网企业
杭州互联网科技公司
丰台科技园 互联网
互联网科技logo
互联网科技美容
互联网科技视频素材
中正互联网科技招聘
华脉科技工业互联网产品
字节跳动和互联网科技
金融科技与互联网金融相同和不同
西安小鹰速贷互联网科技有限公司
领航科技大厦互联网公司
厦门江牛科技互联网
富国互联网科技002692
互联网科技新闻
福仕德教育科技互联网
数字互联网科技有限公司
盐城市攀科互联网科技有限公司
高科技和互联网的现代国家
科技互联网企业
互联网电商科技
互联网为科技
银优互联网科技有限公司
佰商互联网科技有限公司
互联网金融科技委员会
互联网汽车科技小镇
互联网大会黑科技排名
千方科技属于互联网企业吗
广州全民伙伴互联网科技有限公司