打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
socketpair()函数介绍

函数原型:

int socketpair(int d, int type, int protocol, int sv[2]); 

参数介绍:
        socketpair()函数建立一对匿名的已经连接的套接字,其特性由协议族d、类型type、协议protocol决定,建立的两个套接字描述符会放在sv[0]和sv[1]中。
第1个参数d,表示协议族,只能为AF_LOCAL或者AF_UNIX;
第2个参数type,表示类型,只能为0。
第3个参数protocol,表示协议,可以是SOCK_STREAM或者SOCK_DGRAM。用SOCK_STREAM建立的套接字                 对是管道流,与一般的管道相区别的是,套接字对建立的通道是双向的,即每一端都可以进行读写。                   参数sv,用于保存建立的套接字对。

    socketpair创建了一对无名的套接字描述符,描述符存储于一个二元数组fd[2],可以从fd[0]写入fd[1]读出,也可以从fd[1]写入fd[0]读出,如果没有写入就读出则会发生阻塞。用途:用来创建全双工通道,而避免了创建两个管道的麻烦,不过只局限于父子进程之间
例子:
    #include <stdio.h>
    #include <unistd.h>
    #include <sys/socket.h>
    main()
    {
        int fd[2];
        char buf[20]={};
        char re[20]={};
        socketpair(AF_LOCAL,SOCK_DGRAM,0,fd);//创建无名套接字描述符号
        printf("%d\n",getpid());
        write(fd[1],"hellow",12); 写入
        read(fd[0],re,20); 读出
        printf("::%s\n",re);
        close(fd[0]);
        close(fd[1]);
    }
注意:父子进程在通信时候,必须关闭一个描述符号,是因为一个再写的时候另外一个只能读
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Linux Socket学习(六)
pipe函数详解
Linux网络编程基本知识
socketpair理解
select函数详解及实例分析
socket阻塞和非阻塞
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服