进程间双向通信--sockpair
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,sockpair是一个套接字,可以用于网络通信,也可用于本机内进程间通信。sockpair类似于管道,只不过管道是用于单向通信的,只能一方读,一方写,。而想要用于进程间双向通信,就要pipe两次,创建
千家信息网最后更新 2025年12月03日进程间双向通信--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安全错误
数据库的锁怎样保障安全
湖北超频服务器供应
服务器安全狗 ftp
画一幅关于网络安全画
宿舍楼网络安全方案设计
hp刀片服务器图标
重庆小软件开发
我的世界pe搭路服务器
淄博陶瓷库存软件开发公司
达梦数据库调整列顺序
2000数据库备份数据
计算机三级网络技术大纲
搭建窄宽带拨号上网服务器
股市软件开发
mc服务器怎么盗号
交通领域主题数据库
数据库outer aplay
nb-iot无线网络技术指标
数据库服务那个可以停
网络安全类图书
加强网络安全的实施意见
网络安全咨询合同
徐汇区信息软件开发代理品牌
隔离点武汉网络安全学院
网络安全绿色认证证书
服务器正常运行一会后关机
为什么不能和服务器连接
服务器的安全方案
北京腾信创新网络技术
北京工业服务器云服务器
用友软件服务器名是什么