前言
由于本人考虑在aosp沙箱的native层代码当中建立进程间的通信,然后观看源码发现其采用的是一种用于本地进程间通信的套接字——Unix Domain Socket,UDS与原来的网络Socket相比,仅仅只需要在进程间复制数据,无需处理协议、计算校验和、维护序号、添加和删除网络爆头、发送确认报文,因此更高效,速度更快。
UDS的创建与网络Socket的创建类似:
- 创建一个Socket,指定family为AF_UNIX,type支持SOCK_STRAEM和SOCK_DGRAM两种;
- bind地址,与网络Socket不同,UDS所绑定的对象是一个文件;
- 开始监听accept;
- 接收请求accept,为每个连接建立新的套接字,并从监听队列队列中移除。
编写实例
1 |
|