Unix编程:Unix域套接字与Shell脚本入门
1. Unix域套接字
1.1 概述
在使用网络功能的应用程序中,并非都需要涉及两个独立的主机。许多应用采用客户端 - 服务器或对等机制构建,同一机器上的进程可通过进程间通信(IPC)来协商工作内容和执行者。例如,像 systemd 和 NetworkManager 这样的守护进程会使用 D-Bus 来监控和响应系统事件。
进程可以通过本地回环地址( 127.0.0.1 或 ::1 )使用常规的 IP 网络进行通信,但通常会选择一种特殊的套接字——Unix 域套接字。当进程连接到 Unix 域套接字时,其行为与连接网络套接字几乎相同:可以监听和接受套接字上的连接,甚至可以选择不同的套接字类型,使其表现得像 TCP 或 UDP。
1.2 Unix域套接字的特点
- 非网络套接字 :Unix 域套接字并非网络套接字,其背后没有网络。使用它甚至不需要配置网络,也不必绑定到套接字文件。进程可以创建一个未命名的 Unix 域套接字,并与其他进程共享地址。
- 访问控制 :开发人员喜欢使用 Unix 域套接字进行 IPC 主要有两个原因。首先,它允许使用文件系统中的特殊套接字文件来控制访问,任何没有访问权限的进程都无法使用该套接字。而且由于不与网络交互,它更简单,也更不容易受到常规网络入侵。例如,
D-Bus的
超级会员免费看
订阅专栏 解锁全文
9693

被折叠的 条评论
为什么被折叠?



