如何使用D-bus监视我自己的私人FD?

在将D-bus IPC带入我的客户端程序时,我有些怀疑。

在我看来,D-bus有自己的方式来pipe理底层的socket。
套接字fd被打包成'DBusConnection',然后被用来与守护进程,写/读/调度/循环进行通信。 没关系。

但是,如果客户端需要直接监视/select另一个套接字,例如监视一个TCP端口,有时使用它自己的方式。
D-bus适合这种情况吗? 在使用D-bus时如何select两个sockets
D-bus是否只能通过与守护进程连接的“DBusConnection”与其他本地进程进行通信?

我刚开始使用D-bus,真的很困惑。
任何帮助将不胜感激〜

对不起,我没有明确表示。
我将以一个例子来详细说明。

一些熟悉D-bus的人可能已经查阅了“dbus-monitor”的源代码,这是一种连接在D-bus上的工具。
'dbus-monitor'使用' dbus_bus_get '与守护进程build立连接,然后调用' dbus_connection_get_object_path_data '告诉dameon它支持哪些对象,等等(这里不用关心),最后是主循环的' _dbus_loop_run '。

好奇心,我做了一些关于这些D-bus API实现的潜水工作。 (显然是不够的)
从我的angular度来看,与通常的IPC逻辑一样,这些步骤的基本工作看起来像(可能不太确定):打开本地套接字,连接到服务器(守护进程),读/写/select服务器使用epoll)socket fd。

好的,谢谢你的耐心。 精〜

为了与守护进程通信,D-bus创build一个套接字并使用自己的方式(API)来操作套接字。 (socket fd封装在D-bus的连接结构 – ' DBusConnection '中,我们不能直接操作它。)

现在我的问题是,如果我需要D-bus来创build一个' DBusConnection '(封装一个本地套接字fd)来与守护进程交谈,就像'dbus-monitor'一样。 同时,我的客户端应用程序还需要创build另一个套接字fd来监视一个tcp端口。
我想知道是否有办法同时“select”这两种socketsFD? (一个封装在D-bus的连接结构中,不能明确select,另外一个是通用套接字fd)