1

セッション バスに接続して、Qt DBus テストを実行できます。

QDBusConnection connection = QDBusConnection::sessionBus();
connection.registerService(...)
....
TestserviceInterface testserviceInterface( .... , connection, &a);

しかし、別のコンピューターからこの DBus に接続できますか? 私はこのようなことができることを知っています:

 connection = QDBusConnection::connectToPeer("tcp:host=127.0.0.1,port=45000", Testservice::ServiceName);

しかし、どうすればポートを取得できますか? 何を試しても、接続がないようです。または、ここで間違ったパスにいるので、セッション バスの代わりに Peer 2 Peer DBus を使用する必要がありますか?

私が見ることができるように、サービス名が正しいとほぼ確信していqdbusviewerます。出力を使用する場合dbus-monitor、私にとってはあまり意味がありません。ポートが表示されないなどです。

別のコンピューターから接続する方法を教えてください。

PS: SSH ( http://gabriel.sourceforge.net/howto.html )経由でトンネリングするための gabriel のようなものがあることを認識しています。これは私がやっていることではなく、「直接的なつながり」を探しています。

4

1 に答える 1

1

セッション バス デーモンは通常、UNIX ソケットをリッスンします/var/run/dbus/system_bus_socket(設定を確認してください/usr/local/etc/dbus-1/session.conf)。つまり、tcp 経由でリモート アクセスすることはできません。バスデーモンが実行されているコンピューターである種のポート転送を開始するか (socatたとえば、を使用)、tcp をリッスンするように構成します。

于 2013-10-03T12:18:46.440 に答える