D - Bus 全面概述
1. D - Bus 基础概念
D - Bus 是一种用于进程间通信(IPC)的机制,使用 D - Bus 的应用程序可分为服务器和客户端。服务器监听传入的连接,客户端则连接到服务器。一旦连接建立,消息就会以对称的方式流动,客户端和服务器的区别仅在建立连接时才有意义。
通常,若使用总线守护进程,应用程序会作为总线守护进程的客户端,即总线守护进程监听连接,应用程序发起连接。
D - Bus 地址指定了服务器监听和客户端连接的位置。例如,地址unix:path=/tmp/abcdef表示服务器将在路径/tmp/abcdef的 UNIX 域套接字上监听,客户端将连接到该套接字。地址也可以指定 TCP/IP 套接字,或者未来 D - Bus 规范迭代中定义的任何其他传输方式。
当使用带有消息总线守护进程的 D - Bus 时,libdbus会通过读取环境变量自动发现每个会话的总线守护进程地址,并通过检查知名的 UNIX 域套接字路径来发现系统范围的总线守护进程地址(不过也可以使用环境变量覆盖该地址)。若不使用总线守护进程,则需要自行定义哪个应用程序是服务器,哪个是客户端,并指定一种机制让它们就服务器地址达成一致,这种情况比较少见。
要指定对特定对象实例的特定方法调用,需要命名一系列嵌套组件:Address -> [Bus Name] -> Path -> Interface -> Method
方括号中的总线名称表示它是可选的,只有在使用总线守护进