Подключиться к сеансу DBus на другом компьютере

Я могу запустить свой тест 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: я в курсе, что есть что-то вроде gabriel для туннелирования через SSH (http://gabriel.sourceforge.net/howto.html). Это не что я делаю, я ищу «прямую связь».

1

Решение

Демон Session Bus обычно слушает сокет Unix /var/run/dbus/system_bus_socket ( Проверьте свои /usr/local/etc/dbus-1/session.conf config), что означает, что вы не можете получить к нему доступ через tcp. Запустите переадресацию портов на компьютере, на котором запущен демон шины (используя socat например) или настройте его на прослушивание tcp.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector