进程间双向通信--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安全错误
数据库的锁怎样保障安全
互联网科技小贷
华中科技大学互联网
北京禾田雨橡互联网科技
沃里互联网科技
齐家互联网科技有限公司
上海亿帐通互联网科技
美国互联网前沿科技
互联网科技股午盘股票涨跌
随着互联网科技发展
互联网系的金融科技公司
彤创互联网科技有限公司
亳州好赞互联网科技有限公司
互联网金融科技名词解释
北京市互联网新科技
广东工业互联网大赛深圳学泰科技
城市宝互联网科技有限公司
互联网科技融合创新
互联网时代科技型公司的机会
互联网科技职业技能培训学校
好易买互联网科技
互联网金融监管科技数据
北京互联网科技有限公司
互联网科技论文
广州凡科互联网科技
互联网科技论坛
华中科技有哪些互联网大佬
创业天下互联网科技有限公司
互联网新科技动漫ppt素材
互联网科技职业技能培训学校
互联网科技大佬云集