я могу запустить мой тест Qt DBus путем подключения к шине сессии:Подключение к сессии 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). Это не что я хочу, я ищу «прямое соединение».
Значит, я могу подключить шину сеанса через TCP, если он настроен на прослушивание tcp. Надо попробовать. –
Я предлагаю запустить простой сервис, который прослушивает tcp и подключается к системной шине вместо реконфигурации демона dbus –