进程间双向通信--sockpair
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,sockpair是一个套接字,可以用于网络通信,也可用于本机内进程间通信。sockpair类似于管道,只不过管道是用于单向通信的,只能一方读,一方写,。而想要用于进程间双向通信,就要pipe两次,创建
千家信息网最后更新 2025年02月01日进程间双向通信--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安全错误
数据库的锁怎样保障安全
数据库连接的两种方法及区别
阿里服务器统一折扣
服务器管理地址和密码
阴阳师服务器合集
金蝶云软件开发
派生科技是互联网金融股票吗
网站服务器缓存
dns服务器相关知识linux
前台和数据库怎么交互
计算机网络技术5g方向好吗
温州网络技术哪家好
四举措加强信息网络安全
linux数据库密码修改
小学网络安全语
太极快乐网络技术有限公司
sql数据库错误3149
济南市浪潮服务器价格
网络安全为主题绘画用4k纸
按时计费云服务器
奇幻射击连不上服务器
血缘 服务器
3ds自制软件开发
非技术背景如何管理软件开发部门
软件开发可追溯性分析报告
服务器维护一月多少钱
电影的服务器下载地址
备份可以备份软件数据库文件
医美管理软件开发背景
国信安网络安全
中药单体代谢物数据库