2012-07-23 107 views
1

我正尝试使用DBUS的低级别c-api在套接字上实现服务器客户端。我的问题是,总线应该总是用于dbus通信。而BUS是否意味着一个额外的dbus-daemon实例。dbus总是需要总线

回答

2

是的,你需要一个用于DBus通信的总线。公共汽车只是一个沟通渠道,仅此而已。更多的公交车并不意味着更多的Dbus守护进程,它只是意味着更多的沟通渠道。

在一个系统中,通常有一个DBus守护进程和一个或多个总线。每条总线用于某些类别的消息(在您的应用程序中定义)。

通过指定要发送信号/方法的客户端的名称(DBus标准允许),2个应用程序可以通过DBus进行通信,绕过守护进程。但是,我不认为有提供此功能的DBus绑定。但是如果你想使用DBus的原始C API,你可以自己实现它。您可以检查this discussion以获取有关该主题的更多信息。

+0

谢谢你的答案。我有一台服务器在使用GLIB DBUS绑定的tcp套接字设置上进行侦听。但客户端需要使用dbus低级c-api。我无法识别API是dbus守护进程的“接口”部分,还是那些不是的部分。任何指针?我能找到任何使用套接字的dbus低级别c-api示例应用程序。 – nagavamsikrishna 2012-07-24 01:45:24

+1

你可以看看低级C API手册[这里](http://dbus.freedesktop.org/doc/api/html/index.html)。与消息总线交互的功能似乎在[本页]上(http://dbus.freedesktop.org/doc/api/html/group__DBusBus.html)。你可以在这里找到一个关于使用低层API的小教程(http://www.matthew.ath.cx/misc/dbus)。我希望这可以帮助你。 – 2012-07-24 09:46:45

0

不确定C API,但您可以让客户端和服务器使用我的node.js dbus实现直接连接。这里是一个example