Linux 网络编程 Unix域套接字

Unix域套接字是BSD UNIX中实现本地通信的一种方式,它提供流式和用户数据报两种套接字类型。相比其他IPC方式,Unix域套接字在效率和便利性上更具优势,常用于前后台进程间的通信。其涉及的数据结构包括struct sockaddr_un,用于定义套接字路径。服务器端通过socket(), bind(), listen(), accept()和recv/send()操作,而客户端则使用socket(), connect()和recv/send()进行交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Unix域套接字

BSD UNIX 最初引入套接字时只支持本地通信。

特点:
  • socket 也可以用于本地通信
  • 创建套接字时使用本地协议 AF_UNIX 或 AF_LOCAL
  • 流式套接字 和 用户数据报套接字
  • 和其他进程间通信方式相比使用方便,效率更高
  • 常用于前后台进程通信
相关数据结构:
  • 本地地质结构

    struct sockaddr_un
    {
        sun_family sun_family;	//协议
        char sun_path[108];		//套接字文件的路径
    };
    
    //填充地址结构体
    #include <sys/un.h>
    
    struct sockaddr_un myaddr;
    bzere(&myaddr, sizeof(myaddr));
    myaddr.sun_family = AF_UNIX;
    strcpy(myaddr.sun_path, "./mysocket");
    
TCP 流式套接字
  • 服务器端

    socket() – bind( , 本地地址, ) – listen() – accept() – recv()/send() – close()

  • 客户端

    socket() – { 可选 bind() } – connect() – recv() / send() – close()

UDP 用户数据报套接字
  • 服务器端

    socket() – bind( , 本地地址, ) – recvfrom()/sendto() – close()

  • 客户端

    socket() – { 可选 bind() } – recvfrom() / sendto() – close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值