UNIX域套接字

	流式套接字与数据报套接字,除了可以完成网络通信,也可以完成本地通信。换句话说,即网络通信中,可以使用流式套接字与数据报套接字来完成。同样本地通信中,也可以使用流式套接字与数据报套接字来实现。
	根据上述描述可知流式套接字和数据报套接字,既能实现网络通信,也能实现本地通信。通常把用于本地通信的套接字称为UNIX域套接字。
	UNIX域套接字只能用于在同一个计算机的进程间通信。虽然网络套接字也可以用于单机进程间的通信,但是使用UNIX域套接字不仅简单而且高效。因为UNIX域套接字仅仅进行数据复制,不会执行在网络协议栈中需要处理的添加、删除报文头、计算校验和。计算报文顺序等复杂操作,因而在本地的进程间通信中,更加推荐使用UNIX域套接字。UNIX域套接字常用于前后台进程间的通信。
	当套接字用于网络通信时,在编程过程中,使用结构体struct sockaddr_in(包含协议、IP地址、端口)和套接字文件描述符关联起来。同样,当套接字用于本地通信时,可以用结构体struct sockaddr_un描述一个本地地址。
#define  UNIX_PATH_MAX  108 
typedef unsigned short __kernel_sa_family_t;  
struct sockaddr_un {                                                                                                 
     __kernel_sa_family_t sun_family; /* AF_UNIX */
     char sun_path[UNIX_PATH_MAX];   /* pathname */
};
将宏定义以及重定义替换为原型,则结构体原型如下所示。

struct sockaddr_un {
unsigned short sun_family; /协议类型/
char sun_path[108]; /套接字文件路径/
};


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值