2012-07-23 3 views
1

DBUS의 저수준 c-api를 사용하여 소켓을 통한 서버 클라이언트를 구현하려고합니다. 내 질문은 .. 버스가 항상 dbus 통신에 사용되어야한다는 것입니다. 그리고 BUS는 dbus-daemon의 추가 인스턴스를 의미합니다.dbus에 항상 버스가 필요합니까?

답변

2

예, DBus 통신을위한 버스가 필요합니다. 버스는 통신 채널입니다. 더 많은 버스가 Dbus 데몬의 더 많은 인스턴스를 의미하는 것은 아니며 단지 더 많은 통신 채널을 의미합니다.

시스템에는 일반적으로 하나 이상의 버스가있는 하나의 DBus 데몬이 있습니다. 각 버스는 일부 메시지 클래스 (응용 프로그램에 정의 됨)에 사용됩니다.

2 어플리케이션은 신호/메소드를 송신하려는 클라이언트의 이름을 지정하여 데몬을 우회하여 DBus를 통해 통신 할 수 있습니다 (DBus 표준은 허용합니다). 그러나, 나는이 기능을 제공하는 DBus 바인딩이 있다고 생각하지 않는다. 그러나 DBus의 원시 C API를 사용하려면 직접 구현할 수 있습니다. 주제에 대한 자세한 내용은 this discussion을 확인하십시오.

+0

답변 해 주셔서 감사합니다. GLIB DBUS 바인딩을 사용하여 TCP 소켓 설정을 수신하는 서버가 있습니다. 그러나 클라이언트는 dbus 저수준 c-api를 사용해야합니다. 나는 dbus-daemon에 대한 '인터페이스'인 API의 일부와 그렇지 않은 부분을 인식 할 수 없다. 어떤 포인터? 그리고 소켓을 사용하여 dbus 저수준 c-api 용 샘플 응용 프로그램을 찾을 수 있습니까? – nagavamsikrishna

+1

로우 레벨 C API 매뉴얼 [여기] (http://dbus.freedesktop.org/doc/api/html/index.html)을 볼 수 있습니다. 메시지 버스와 상호 작용하는 기능은 [이 페이지] (http://dbus.freedesktop.org/doc/api/html/group__DBusBus.html)에있는 것처럼 보입니다. 저수준 API [here] (http://www.matthew.ath.cx/misc/dbus) 사용에 대한 자습서를 찾을 수 있습니다. 나는 이것이 당신을 돕기를 바랍니다. –

0

C API는 확실하지 않지만 내 node.js dbus 구현을 사용하여 클라이언트와 서버를 직접 연결할 수 있습니다. 여기에 있습니다 example

관련 문제