进程间双向通信--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设计
互联网科技logo
中国互联网金融科技基金
互联网科技类展会
宁夏科技产业互联网案例
福建科技产业互联网发展
和信科技工业互联网
广州新华互联网科技学校电竞方面
互联网科技大赛获奖感言
徐州市互联网科技有限公司
上海钢联属于互联网科技股吗
广州百诚互联网科技有限公司官网
昆明中奇联合互联网科技
世界互联网科技成果奖
万物互联网智能科技
马化腾互联网科技教学
恒生科技互联网指数十大成分股
山东亿川互联网科技有限责任公司
中智农互联网科技
互联网科技社
深圳齐家互联网科技
互联网金融和金融科技
新兴科技互联网创新大赛颁奖典礼
互联网公司黑科技创始人
南通创西澳互联网科技有限公司
全球科技与互联网公司市值变化
广西科技产业互联网是什么
北京军民互联网科技公司